我有整数数组:
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};
并且所有arrB
都将添加到列表中,如下所示:
List<int[]> list= new ArrayList<int[]>();
list.add(arrB1);
list.add(arrB2);
list.add(arrB3);
list.add(arrB4);
list.add(arrB5);
我想将数组arrA
与数组列表的相等性进行比较,我使用以下代码做到了:
boolean isEqual=false;
for(int index=0; index<list.size(); index++){
if(list.get(index).equals(arrA)){
isEqual=true;
}
System.out.println(isEqual);
}
我知道arrB5
等于arrA
,但为什么我总是得到错误?我的比较正确吗?
最佳答案
您正在对数组调用 equals
- 这将仅通过引用进行比较,因为数组不会覆盖 equals
。您想要Arrays.equals(int[], int[])
比较数组中的值。
(在这种情况下,您不需要 deepEquals
,因为您正在处理 int[]
- 实际上调用 deepEquals
不会'无法编译,因为 int[]
不是 Object[]
。)
关于java - 我可以比较数组与数组的 ArrayList 的相等性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169831/