2011-02-14 43 views
4

在java中我不是能夠在列表中添加到HashSet使用哈希集合中的addAll方法在一個HashSet添加列表使用中的addAll

List a = new ArrayList(); 
a.add(20); 

List b = new ArrayList(); 
b.add(30); 

Set set = new HashSet (a); 

set.addAll(b); 

請幫

感謝

+4

你是什麼意思「我不能夠」 - 結果究竟是什麼? – 2011-02-14 22:07:47

+1

似乎對我很有用 – hvgotcodes 2011-02-14 22:10:21

回答

12

我想你的代碼它適用於我。

但有一點 - 使用通用版本的集合會更好。這刪除了警告。

List<Integer> a = new ArrayList<Integer>(); 
a.add(20); 

List<Integer> b = new ArrayList<Integer>(); 
b.add(30); 

Set<Integer> set = new HashSet<Integer>(a); 
set.addAll(b); 
1

這工作正常,只是如果你添加一個列表到集合,列表和集合之間的重複元素只添加一次。

說例如ArrayList arr有元素2,3,4和HashSet集有元素2,5,7現在如果你做 set.addAll(arr),那麼set仍然包含2,5,7,3, 4。

另外想象一下你有一個ArrayList arr和HashSet集合的場景,其中T是一個包含多個參數的泛型類,那麼最終集合中的公共元素將被刪除,等同於在T類中等於方法的重載定義並添加元素設置將堅持在ArrayList中的元素上。

相關問題