The simplest solution would be to use sets, as long as you don’t care that the elements in the result will have a different order, and that duplicates will be removed. The input arrays array1
and array2
are the Integer[]
subarrays of the given int[]
arrays corresponding to the number of elements that you intend to process:
Set<Integer> s1 = new HashSet<Integer>(Arrays.asList(array1));
Set<Integer> s2 = new HashSet<Integer>(Arrays.asList(array2));
s1.retainAll(s2);
Integer[] result = s1.toArray(new Integer[s1.size()]);
The above will return an Integer[]
, if needed it’s simple to copy and convert its contents into an int[]
.