使用 addAll 在哈希集中添加列表

2022-09-03 13:25:07

在java中,我无法使用哈希集addAll方法将列表添加到哈希集

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

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

Set set = new HashSet ( a );

set.addAll( b);

请帮忙

谢谢


答案 1

我尝试了你的代码,它对我有用。

但有一件事 - 最好使用集合的通用版本。这将删除警告。

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);

答案 2

这工作正常,只是如果将列表添加到集合中,则列表和集合之间的重复元素仅添加一次。

例如,假设 ArrayList arr 有元素 2,3,4,HashSet set 有元素 2,5,7 现在,如果你做 set.addAll(arr),那么 set 仍然包括 2,5,7,3,4。

另想象一下,您有一个 ArrayList arr 和 HashSet 集,其中 T 是包含多个参数的泛型类,然后最终集中的公共元素将根据 equals 方法在 T 类中的重写定义被删除,添加到 set 中的元素将保留在数组列表中元素的最终集合中。