如何在java中检查数组a是否是数组b的一部分?

如何在java中检查数组a是否是数组b的一部分?,java,Java,可能重复: 我有数组a={1,4,3,5,1,2,3,6}和数组b={1,2,3} 如何检查数组b元素是否出现在数组a中的任何位置?任何帮助都将不胜感激。谢谢。显然,最简单的方法是使用内置函数。但是,Java只有内置函数来为集合类型执行此操作。如果数组不是基元类型,则可以执行以下操作: if (Arrays.asList(a).containsAll(Arrays.asList(b))) { //... } 如果它是一个基本数组(int[],等等),这仍然是最简单的方法,您只需要手动或

可能重复:

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


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

显然,最简单的方法是使用内置函数。但是,Java只有内置函数来为
集合
类型执行此操作。如果数组不是基元类型,则可以执行以下操作:

if (Arrays.asList(a).containsAll(Arrays.asList(b))) {
   //...
}
如果它是一个基本数组(
int[]
,等等),这仍然是最简单的方法,您只需要手动或使用第三方库将数组转换为列表。为此:

if ( Ints.asList(a).containsAll(Ints.asList(b)) ) {
   //...
}
使用:


O(n^2)
中它是微不足道的。在
O(n logn)
中也相对容易。您尝试过什么?仅供参考,这里回答:是应该将元素放在一起,还是可以在a中的任何位置找到b的每个元素?是否允许您修改数组,特别是对它们进行排序?这些数组是原始类型的
int[]
数组还是包含对象的
Integer[]
数组?后者可以与
新的HashSet(Arrays.asList(…).containsAll(…)
@assylias一起工作,适用于
ArrayList
的东西不适用于基本元素类型的基本数组。谢谢,我将数组转换为列表,但仍然无法识别Ints.asList,这是代码//将数组转换为列表List=(List)数组。asList(a);List blist=(List)数组;if(Ints.asList(blist).containsAll(Ints.asList(a)){System.out.print(“是”);}else System.out.print(“否”)@user1172575在一条评论中,你说
b
的元素应该在一起,但即使它们不在一起,也会返回true。@madth3,如果它们不在b中,也会返回false,为什么即使它们不在一起也会返回true?@user1172575:正如我在回答中所说,
Ints.asList
是番石榴的一个函数,非常流行的第三方库。
for (Object element:b) {
    if (ArrayUtils.contains(a,element) == false) return false;
}
return true;