数组取交集

  有两个数组a{1,5,8,10,14,15,17,18,20,22,24,25,28}和b{2,4,6,8,10,12},如何求出他们之间的交集?要求效率越高越好
注:数组都是从小到大排序好的

 

 
 
  1. while(i<a.length && j < b.length) 
  2. if(a[i] < b[j]) 
  3.      i++; 
  4. else if (a[i] == b[j]) 
  5.      输出这个元素; 
  6.      i++; 
  7.      j++; 
  8. else 
  9.      j++; 




懒人写法

  
  
  1. int[] a = {1,5,8,10,14,15,17,18,20,22,24,25,28}; 
  2. int[] b = {2,4,6,8,10,12}; 
  3.  
  4. List   list   =   new   ArrayList(Arrays.asList(a));    
  5. list.retainAll(Arrays.asList(b));   //   list   中的就是交集了. 
点赞