2011-02-14 44 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中的元素上。

相关问题