我可以将数组的相等性与数组的ArrayList进行比较吗?

joh*_*els 2 java arrays arraylist

我有整数数组:

int[] arrA = {1,2,3,4,5,6,7,8,9};
int[] arrB1= {7,3,4,1,5,8,9,2,6};
int[] arrB2= {9,5,1,4,7,6,8,2,3};
int[] arrB3= {4,6,1,3,8,9,5,7,2};
int[] arrB4= {2,3,1,5,8,9,4,6,7};
int[] arrB5= {1,2,3,4,5,6,7,8,9};
Run Code Online (Sandbox Code Playgroud)

并将所有arrBs添加到列表中,如下所示:

List<int[]> list= new ArrayList<int[]>();

list.add(arrB1);
list.add(arrB2);
list.add(arrB3);
list.add(arrB4);
list.add(arrB5);
Run Code Online (Sandbox Code Playgroud)

我想比较数组arrA与数组列表的相等性,并使用此代码完成它:

boolean isEqual=false;
for(int index=0; index<list.size(); index++){
    if(list.get(index).equals(arrA)){
          isEqual=true;
    }
    System.out.println(isEqual);
}
Run Code Online (Sandbox Code Playgroud)

我知道这arrB5是等于arrA但为什么我总是弄错?我正在进行比较吗?

Jon*_*eet 7

你正在调用equals数组 - 它只是通过引用进行比较,因为数组不会覆盖equals.您想要Arrays.equals(int[], int[])比较数组中的值.

(deepEquals在这种情况下你不需要处理int[]- 实际上调用deepEquals不会编译,因为int[]它不是Object[].)