我正在调试我的代码,看起来内置函数 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/