1、求两个整数集合a,b的交集。定义两个set,Set中是没有相同的数值。一个存放所有整数,另外放交集的数据。
public Set<Integer> getIntersection(int a[],int b[]){ Set<Integer> set= new HashSet(); Set<Integer> set2 = new HashSet(); for (int i=0;i<a.length+b.length;i++){ if(i<a.length){ set.add(a[i]); }else{ if(set.contains(b[i-a.length])){ set2.add(b[i-a.length]); }else{ set.add(b[i-a.length]); } } } for(int i:set2){ System.out.println(i); } return set2;
}
2、如果两个整数集合a,b都是有序的,那么只需要定义一个Set:
public Set<Integer> getIntersection(int a[],int b[]){ Set<Integer> set= new HashSet(); int i=0,j=0; while(i<a.length&&j<b.length){ if(a[i]<b[j]){ i++; }else if((a[i]>b[j])){ j++; }else{ set.add(a[i]); i++; j++; } } for(int k:set){ System.out.println(k); } return set; }