Search code examples
javaarraysintersection

How do I find the intersection of two arrays in Java?


Trying to find the intersection of 2 arrays a and b and store it into a new array c.

Expected result: array c with values: 3, 10, 4, 8.

public static void main(String[] args) {
    int[] a = {3, 10, 4, 2, 8};
    int[] b = {10, 4, 12, 3, 23, 1, 8};
    int[] c;
    int i = 0;
    for (int f = 0; f < a.length; f++) {
        for (int k = 0; k < b.length; k++) {
            if (a[f] == b[k]) {
                //here should be a line that stores equal values of 2 arrays(a,b) into array c
            }
          }
        }
        for (int x = 0; x < c.length; x++) {
            System.out.println(c[i]);
        }
    }
}

Solution

  • This should be an easy way to do.

    int a[] = {3, 10, 4, 2, 8};
    int[] b = {10, 4, 12, 3, 23, 1, 8};
    List<Integer> aList =  Arrays.asList(a);
    List<Integer> bList =  Arrays.asList(b);
    aList.retainAll(bList);
    System.out.println(" a intersection b "+aList);
    int[] c = aList.toArray(new int[0]);