小编典典

如何确定我的int []的ArrayList是否包含int []

java

我有一个ArrayList容器int[]

假设 Arrays.equals(int[], (a value in the arrayList)) = true

为什么我这样做arrayOfInts.contains(int[])是假的?

我认为是由于相同的原因,(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;
}

阅读 185

收藏
2020-11-26

共1个答案

小编典典

数组列表仅存储对数组的引用,而不存储其内容,因此contains()只能说列表是否包含对您输入的数组的确切引用。它不评估数组的内容。

如果需要检查列表是否包含具有特定值的数组,则必须遍历列表并使用Arrays.equals(arr1,arr2)

2020-11-26