【发布时间】:2019-06-05 02:05:47
【问题描述】:
我必须创建一个方法,该方法返回一个包含来自两个不同数组的公共元素的数组。我知道对此有很多问题,但我的问题与我必须创建一个新数组的问题有点不同。
我尝试先计算两个数组中有多少共同元素,然后创建一个大小与该数组相同的数组。
之后,我尝试使用 for 循环将新数组设置为公共元素。
public static int [] commonElements(int []a, int [] b){
int count=0;
for(int i=0;i<a.length;i++) {
for(int j=0;j<b.length;j++) {
if(a[i] == b[j]) {
count++;
}
}
}
int []array= new int[count];
for(int i=0;i<a.length;i++) {
for(int j=0;j<b.length;j++) {
if(a[i] == b[j]) {
for (int k=0; k<count; k++){
array[k]=a[i];
}
}
}
}
return array;
}
这会返回四个 -1,所以它不起作用。 我也被要求不要使用arraylist,所以我不知道如何使这段代码完整。
的期望值 // checking common elements
System.out.println ("\nLooking for common elements in the arrays ");
int [] arr3= {56, -21, -5, 7, 10, 21, 2, -1};
int [] arr4= {-1, -56, 5, 21, 3 , 7, 4, -6, 2, 90};
int [] result4 = commonElements(arr3, arr4);
System.out.println (Arrays.toString(arr3));
System.out.println (Arrays.toString(arr4));
System.out.print ("\nCommon elements array: ");
System.out.println (Arrays.toString(result4));
主要是
Looking for common elements in the arrays
[56, -21, -5, 7, 10, 21, 2, -1]
[-1, -56, 5, 21, 3, 7, 4, -6, 2, 90]
Common elements array: [7, 21, 2, -1]
任何帮助将不胜感激!
【问题讨论】:
-
在 for 循环外声明
k=0并在循环内递增array[k++]=a[i];
标签: java