java - Java 中 'contains' 函数的行为

标签 java contains

我正在调试我的代码,看起来内置函数 contains 在我的情况下不能正常工作。看:

List<Integer[]> allVariables = new ArrayList<Integer[]>();
Integer[] cols = {1};

列表包含值:

[0] = Integer[1] => {1}
[1] = Integer[4] => {1,2,3,4}

所以,下面的 IF 表达式必须为真,但它是假的:

if (allVariables.contains(cols[0])) {
    //...
}

有什么问题?

最佳答案

该列表包含 Integer[] 对象,因此如果您询问它是否包含 cols,它将返回 true。但是,它不包含每个单独的数组元素。

如果你想为这些数组的每个元素使用包含,你应该将数组的每个元素添加到列表而不是数组本身(例如通过使用 Collections#addAll )

关于java - Java 中 'contains' 函数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710235/

相关文章:

java - 如何在 QueryDSL 中为时间差创建 OrderSpecifier?

java - 为什么我的 WAR 文件在 Tomcat 中会自动爆炸?

java - Java 中的 String contains () 即使字符串存在也会返回 false

c# - 初始化的字符串似乎包含 string.Empty

java - 如何直接在类而不是集合上调用 contains

java - set 不包含等于其成员之一的项目?

java - servlet接收xml数据时出错

java - 我的 do while 循环在一次迭代后停止。我该如何继续下去?

Java泛型的误解

sql - Google BigQuery WHERE NOT 列表包含字符串的意外行为