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;
}