2012-10-06 46 views
-14

請給我答案。 例如如何製作Java套件

  • A {1,2,3}
  • B {1,4,5}

代碼片段:

a.intersect(b).print() 
// Result 1 . twin between two object 

a.merge(b).print() 
// Result 1,2,3,4,5 

糾正我的任務,請: /** * @參數args命令行參數 */

public static void main(String[] args) { 
    // TODO code application logic here 
    Set<Integer> a = new TreeSet<Integer>(); 
    a.add(1); 
    a.add(2); 
    a.add(6); 
    a.remove(2); 
    a.add(1); //gak berpengaruh karena sudah ada yang 1 sebelumnya 
    //mengapa begituu ? karena et adalah collection yang tidak dapat memiliki elemen kembar. 
    System.out.println("A = " + a); 

    Set<Integer> b = new TreeSet<Integer>(); 
    b.add(2); 
    b.add(6); 
    b.add(1); 
    System.out.println("B = " + b); //hasilnya 1,2,6. 
    //loh?? kok bisa ? krn sy pake TreeSet, jadi udah terurut. 

    b.retainAll(a); //ini rumus intersect XD 
    for (Integer i: b) 
    { 
     System.out.print(i); 
    } 
} 

}

+0

那麼,呃,這裏的交易是什麼? – arshajii

+1

解決方案:使用Java連接並從http://tryruby.org獲取結果。 – LanguagesNamedAfterCofee

+0

看到這個http://stackoverflow.com/questions/163998/classical-set-operations-for-java-util-collection –

回答

58

像這樣:

import java.util.*; 
Set<Integer> a = new HashSet<Integer>(); 
a.add(1); 
a.add(2); 
a.add(3); 

或從磁盤陣列/或多個文字添加;先包裝成一個清單。

Integer[] array = new Integer[]{ 1, 4, 5}; 
Set<Integer> b = new HashSet<Integer>(); 
b.addAll(Arrays.asList(b));   // from an array variable 
b.addAll(Arrays.asList(8, 9, 10)); // from literals 

要獲得交集:

// copies all from A; then removes those not in B. 
Set<Integer> r = new HashSet(a); 
r.retainAll(b); 
// and print; r.toString() implied. 
System.out.println("A intersect B="+r); 

希望這個答案幫助。爲它投票!

+1

你忘了工會(合併)..對於使用addAll –

+1

' Arrays.asList'不適用於int []'數組。不過,因爲指定數組創建表達式的Java 5已經過時了,所以你需要一個'Integer []'數組。 'Arrays.asList(1,4,5)'完成這項工作。但是你根本不需要中間的'List',你可以使用'Collections.addAll(b,1,4,5);' – Holger