我有一个ArrayList容器int[]。
ArrayList
int[]
假设 Arrays.equals(int[], (a value in the arrayList)) = true
Arrays.equals(int[], (a value in the arrayList)) = true
为什么我这样做arrayOfInts.contains(int[])是假的?
arrayOfInts.contains(int[])
我认为是由于相同的原因,(int[] == (a value in the arrayList)) = false但我应该得到这个错误吗?
(int[] == (a value in the arrayList)) = false
我可以以某种方式纠正它吗?
TL; DR:我可以将Arraylist.contains()用于int []
编辑:
解答(如果将来有人在此进行搜索,这是我作为解决方案编写的比较代码):
private boolean arraylistContains(int[] comparison, ArrayList<int[]> arrayListToCompare){ for(int[] values: arrayListToCompare){ if (Arrays.equals(comparison, values)){ return true; } } return false; }
数组列表仅存储对数组的引用,而不存储其内容,因此contains()只能说列表是否包含对您输入的数组的确切引用。它不评估数组的内容。
contains()
如果需要检查列表是否包含具有特定值的数组,则必须遍历列表并使用Arrays.equals(arr1,arr2)。