查找一个数组是否包含另一个数组中的所有元素
我试图遍历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