0

可能重复:
检查一个数组是否是另一个数组的子集

我有数组a = { 1,4,3,5,1,2,3,6 }和数组b= { 1,2,3 }

如何检查数组b元素是否出现在数组中的任何位置a?任何帮助将不胜感激。谢谢。

4

2 回答 2

5

最简单的方法显然是使用内置函数。但是,Java 只有内置函数来为Collection类型执行此操作。如果数组不是原始类型,您可以这样做:

if (Arrays.asList(a).containsAll(Arrays.asList(b))) {
   //...
}

如果它是原始数组(int[]等),这仍然是最简单的方法,您只需手动将数组转换为列表或使用第三方库。 番石榴具有以下功能:

if ( Ints.asList(a).containsAll(Ints.asList(b)) ) {
   //...
}
于 2012-11-15T17:48:40.733 回答
2

使用Apache Commons 语言

for (Object element:b) {
    if (ArrayUtils.contains(a,element) == false) return false;
}
return true;
于 2012-11-15T17:51:08.220 回答