使用 addAll 在哈希集中添加列表
在java中,我无法使用哈希集addAll方法将列表添加到哈希集
List a = new ArrayList();
a.add(20);
List b = new ArrayList();
b.add(30);
Set set = new HashSet ( a );
set.addAll( b);
请帮助
谢谢
In java i m not able to add a list to a hashset using hash set addAll method
List a = new ArrayList();
a.add(20);
List b = new ArrayList();
b.add(30);
Set set = new HashSet ( a );
set.addAll( b);
Please help
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我尝试了你的代码,它对我有用。
但有一件事 - 使用集合的通用版本会更好。这会删除警告。
I tried your code and it works for me.
One thing though - it would be better to use the generic versions of the collections. This removes the warnings.
这工作正常,只是如果将列表添加到集合中,则列表和集合之间的重复元素仅添加一次。
例如,ArrayList arr 有元素 2,3,4,HashSet set 有元素 2,5,7,如果你这样做的话
set.addAll(arr),那么set仍然包含2,5,7,3,4。
另请想象这样一个场景,您有一个 ArrayList arr 和 HashSet 集合,其中 T 是包含多个参数的泛型类,然后最终集合中的公共元素将根据 T 类中 equals 方法的重写定义被删除,并且添加到集合中的元素将是保留在数组列表中元素的最终集合中。
This works fine, just that if you add a list to the set, the repeated elements between the list and the set are added just once.
Say for example ArrayList arr has elements 2,3,4 and HashSet set has elements 2,5,7 now if you do
set.addAll(arr), then set still includes 2,5,7,3,4.
Also Imagine a scenario where you have an ArrayList arr and HashSet set where T is a generic class containing several parameters, then common elements in the final set will be removed as per equals method's overridden definition in T class and the element added to set will be persisted in the final set over the element in the arraylist.
你可以简单地这样做:
you can simply do like this :