查找一个数组是否包含另一个数组中的所有元素

我试图遍历2个数组,外部数组则比另一个数组更长。它将循环遍历第一个,如果第二个数组不包含该int,它将返回false。但是我不知道该怎么做。这是我到目前为止所拥有的:

public boolean linearIn(int[] outer, int[] inner) {

for (int i = 0; i < outer.length; i++) {

if (!inner.contains(outer[i])) {

return false;

}

}

return true;

}

运行时出现此错误:

Cannot invoke contains(int) on the array type int[]

我想知道是否可以不使用嵌套循环(如上)来完成。我知道我做错了,如果有人可以在此问题上提供帮助,那就太好了。我也不确定要在Java文档中寻找什么类int[]

回答:

您可以检查较大的数组是否outer包含较小数组中的每个元素,即inner

public static boolean linearIn(Integer[] outer, Integer[] inner) {

return Arrays.asList(outer).containsAll(Arrays.asList(inner));

}

注意:Integer这种方法需要类型。如果使用原语,

Arrays.asList则将返回,其中List包含type的单个元素int[]。在这种情况下,调用containsAll将不会检查数组的实际内容,而是会比较原始int数组Object引用。

以上是 查找一个数组是否包含另一个数组中的所有元素 的全部内容, 来源链接: utcz.com/qa/408129.html

回到顶部