我的代码中有这个片段来检查数组的每个值是否包含在另一个数组中(主要用于过滤)。
这是片段
public boolean linearIn(int[] subarray, int[] array) {
for (int i = 0; i < subarray.length; i++) {
if (!Arrays.asList(array).contains(subarray[i])) {
Log.d(TAG, "Array doesn't contain " + subarray[i]);
return false;
}
}
return true;
}
这曾经工作过。我记得因为它在我正在开发的应用程序中工作。我的意思是什么?实际上它可以理解何时存在或没有匹配,确实应用了过滤器。
现在事实证明它只是从不有效。使用Log it输出,即使我知道该数组包含0,也不会找到0。
但幸运的是,Android Studio并未对此保持沉默。这是在if语句中给出的警告:
List<int[]>' may not contain objects of type 'Integer' more... (CTRL+F1)
当时我受到3rd answer中question的启发。
我对我的代码工作感到满意,并且很容易说这个,因为它现在甚至找不到一个匹配。
现在我解决了使用Integer类型(有点不合适,因为如果我必须有一个int [],它需要一个循环来进行转换)
更新中的SDK是否有可能破坏此代码?
答案 0 :(得分:0)
Arrays.asList(array)
创建
List<int[]>
不 a
List<Integer>.