Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding the intersection of two arrays [closed]

My aim is to find out values of intersection of arrays a and b and store them into a new array c so the printout will be : 3,10,4,8. How do I assign given values to a 3rd array c ?

 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]);
            }
       }
  }
like image 947
Alexandr Melnik Avatar asked Oct 16 '12 16:10

Alexandr Melnik


People also ask

How do you find the intersection of two arrays?

Solution steps We define an output list intersection[] to store the common elements. Now we sort array Y[] in increasing order. We can use O(nlogn) sorting algorithms like heap sort or quick sort or merge sort. We run a loop from i = 0 to m - 1 and search each element X[i] in the sorted array Y[] using binary search.

What is meant by intersection of two arrays?

The intersection of two arrays is a list of distinct numbers which are present in both the arrays. The numbers in the intersection can be in any order. For example. Input: A[] = {1,4,3,2,5, 8,9} , B[] = {6,3,2,7,5} Output: {3,2,5}


1 Answers

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]);
like image 166
sakthisundar Avatar answered Nov 08 '22 07:11

sakthisundar