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]);
}
}
}
Hope it helps. Or if you have time complexity issue then try Java Set.
You can take a help of temporary variable (but this is basically reinventing the wheel, if you are not required to do so) -
First you need to allocate space for your array:
The hard part is figuring out how much
SOME_SIZE
should be. Since you are calculating an intersection, the most it can be is the size of the smallest ofa
andb
.Finally, to assign an element in the array, you just do
Now you need to keep track of where
idx
goes. I suggest starting withidx = 0
and incrementing it each time you find a new element to add toc
.if permitted use ArrayList for c, its growable array
also if permitted to sort arrays, i recommend you to sort smaller array and then iterate over larger array and binary search in smaller array.
This should be an easy way to do.