java中两个数组中缺少元素

Sat*_*tya 4 java

我们如何从两个数组中找出缺失的元素?前任:

        int []array1 ={1,2,3,4,5};           
        int []array2 ={3,1,2};
Run Code Online (Sandbox Code Playgroud)

从上面的两个数组中,我想找到第二个数组中缺少的元素是什么?

fin*_*nnw 5

将它们转换为Sets 并使用removeAll.

第一个问题是如何将原始类型转换int[]为集合。使用番石榴,您可以使用:

List<Integer> list1 = Ints.asList(array1);
List<Integer> list2 = Ints.asList(array2);
Run Code Online (Sandbox Code Playgroud)

Apache commons(我不熟悉)显然有类似的东西。

现在转换为一组:

Set<Integer> set1 = new HashSet<Integer>(list1);
Run Code Online (Sandbox Code Playgroud)

并计算差异:

set1.removeAll(list2);
Run Code Online (Sandbox Code Playgroud)

并将结果转换回数组:

return Ints.toArray(set1);
Run Code Online (Sandbox Code Playgroud)