0

我的代码中有这个片段来检查一个数组的每个值是否都包含在另一个数组中(基本上是为了过滤)。

这是片段

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;
}

这曾经奏效。我记得是因为它在我正在开发的应用程序中工作。我说它有效是什么意思?好吧,实际上它可以理解何时有或没有匹配,确实应用了过滤器。

现在事实证明它永远不会起作用。即使我知道该数组包含 0,它也会输出找不到 0 的日志。

但幸运的是,Android Studio 并没有对此保持沉默。这是在 if 语句中给出的警告:

List<int[]>' may not contain objects of type 'Integer' more... (CTRL+F1)

当时我受到这个问题的第三个答案的启发。

我很满意,因为它适用于我的代码,而且说起来很容易,因为现在它甚至找不到匹配项。

现在我解决了使用整数类型(有点不舒服,因为如果我必须有一个 int [],它需要一个循环进行转换)

SDK是否有可能以破坏此代码的方式更改更新?

4

1 回答 1

0
Arrays.asList(array) 

创建一个

List<int[]>

不是_

List<Integer>. 
于 2016-07-01T14:31:38.830 回答