java - 检查 java 集合列表中包含的值

标签 java list

我有一个名为 Arraycells 的长数组 List:

List<long[]> Arraycells = new ArrayList<>() ;
Arraycells.add(new long[]{1L, 0L});
Arraycells.add(new long[]{1L, 1L});
Arraycells.add(new long[]{1L, 2L});

我想看看这个列表中是否包含一个长数组对象:

for (long r = 0L; r < 3; r++) {
    for (long c = 0L; c < 3; c++) {
        if (Arraycells.contains(new long[]{r, c})) { // problem is with this statement
            // do something
        }
    }
}

如何检查 Arraycells?

最佳答案

您可能想使用 List<Long> 尝试另一种变体而不是 long[] :

List<List<Long>> cells = new ArrayList<>();
cells.add(Arrays.asList(1L, 0L));
cells.add(Arrays.asList(1L, 1L));
cells.add(Arrays.asList(1L, 2L));

for (long i = 0L; i < 3; i++) {
    for (long j = 0L; j < 3; j++) {
        if (cells.contains(Arrays.asList(i, j))) {
            System.out.println("Contains: " + i + ", " + j);
        }
    }
}

另请注意,您示例中的代码检查引用相等性,因为数组继承 equals来自 Object .另一方面,List.equals(...)实现检查列表是否包含相同的元素和相同的顺序。

关于java - 检查 java 集合列表中包含的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085349/

相关文章:

javax.crypto.BadPaddingException : data hash wrong

javascript - 删除类不起作用

python - 插入列表时数字发生变化

c# - 创建变量类型列表

java - 存储迭代器引用

java - 如何使用 JRuby 创建 Java applet?

java - 正则表达式 - 匹配两个单词或一个单词,但优先考虑两个单词

java - Charset.defaultCharset() 在 JDK1.7 和 JDK 1.6 下得到不同的结果

Java从右到左打印语句

python - Hook 在 python 中从列表中添加/删除项目