Java 如何接收阵列参数并返回? publicstaticvoidmain(字符串[]args){ int[]arr1={1,2,3,4,5}; int[]arr2={5,6,7,8,9}; System.out.println(“相同数据为”+comparararray(arr1,arr2)); } 公共静态整数比较数组(整数[]arr1,整数[]arr2){ //TODO自动生成的方法存根 for(int i=0;i
这个问题是:接收两个数组作为参数,并返回匹配数据的数量。Java 如何接收阵列参数并返回? publicstaticvoidmain(字符串[]args){ int[]arr1={1,2,3,4,5}; int[]arr2={5,6,7,8,9}; System.out.println(“相同数据为”+comparararray(arr1,arr2)); } 公共静态整数比较数组(整数[]arr1,整数[]arr2){ //TODO自动生成的方法存根 for(int i=0;i,java,arrays,Java,Arrays,这个问题是:接收两个数组作为参数,并返回匹配数据的数量。 如何输出“相同的数据为2”您也可以使用集合解决此问题。将arr1的元素添加到集合中(或者您可以根据自己的选择添加arr2的元素),并检查集合是否包含arr2的元素。如果是,则增加计数 public static int compareArray(int[] arr1, int[] arr2) { Set<Integer> set = new HashSet<>(); for(int i : ar
如何输出“相同的数据为2”您也可以使用
集合解决此问题。将arr1
的元素添加到集合
中(或者您可以根据自己的选择添加arr2
的元素),并检查集合
是否包含arr2
的元素。如果是,则增加计数
public static int compareArray(int[] arr1, int[] arr2) {
Set<Integer> set = new HashSet<>();
for(int i : arr1)
set.add(i);
int count = 0;
for(int i : arr2) {
if(set.contains(i))
count++;
}
return count;
}
无需递归调用compareArray方法。相反,您可以将方法修改为:
public静态int-compararray(int[]arr1,int[]arr2){
整数计数=0;
for(int i=0;i
您的参数和返回类型声明是正确的。如果它不起作用,这意味着方法体不正确。看起来不正确的是,您正在递归调用comparararray
。不要这样做,只要在找到匹配项时增加一个计数器,并在最后返回计数器值。为什么“相同的数据为2”?@saka1029这是我的错误
public static int compareArray(int[] arr1, int[] arr2) {
int count = 0;
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
if(arr1[i] == arr2[j]) {
count++;
}
}
}
return count;
}