如果我有一个ArrayList<int[]>
示例,我想检查其中是否包含 {2,4} 我该怎么做?
exaple.contains({2,4}); //doesn't work
和
exaple.contains(2,4); //doesn't work either
代码有什么问题?
最佳答案
数组不会覆盖 Object.equals()
方法(ArrayList.contains()
用于比较对象)。所以一个数组只等于它自己。您必须遍历列表并使用 Arrays.equals()
将每个元素与您的数组进行比较.
不过,我怀疑你不应该有 List<int[]>
,而是一个 List<Coordinate>
.然后 Coordinate 类可以覆盖 equals()
和 hashCode()
, 你就可以使用
example.contains(new Coordinate(2, 4))
您也可以使用 List<List<Integer>>
,但如果我怀疑是真的(即您使用数组来保存两个应该在类中的坐标),那么请使用自定义坐标类。
关于java - ArrayList<int[]> 包含一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957172/