前兩天給我出了一道題,求數組的並集和交集,然后我試着寫一下,很尷尬,由於長時間沒有寫過代碼,一開始數組是如何定義的給忘了。當時我說了我的思路,不過也是很low的做法,查閱網上的一些資料,實現的很厲害,不過對於我這種習慣了看1+1=2這種操作的人,難免有些為難。
好了,牢騷發夠了,這里提供一種思路,在我看來,很簡單。
public class SumandRetain {
Set<Integer> m=new HashSet<>();
ArrayList<Integer> a1=new ArrayList<>();
ArrayList<Integer> b1=new ArrayList<>();
//求兩個數組的並集(利用Set的去重機制)
public Set<Integer> sum(int a[],int b[]) {
for(int i=0;i<a.length;i++) {
m.add(a[i]);
}
for(int j=0;j<b.length;j++) {
m.add(b[j]);
}
return m;
}
//求兩個數組的交集(利用集合類的retainAll()方法)
public ArrayList<Integer> retain(int a[],int b[]){
for(int i=0;i<a.length;i++) {
a1.add(a[i]);
}
for(int j=0;j<b.length;j++) {
b1.add(b[j]);
}
b1.retainAll(a1);
return b1;
}
}
再編寫主方法
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]= {1,3,5,7};
int b[]= {2,3,4,9};
SumandRetain sumandReatain=new SumandRetain();
System.out.println(sumandReatain.sum( a,b));
System.out.println(sumandReatain.retain(a, b));
}