首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java.util.Collection的经典集合运算

java.util.Collection的经典集合运算
EN

Stack Overflow用户
提问于 2008-10-02 19:01:32
回答 4查看 47.8K关注 0票数 65

java.util.Collection类上的经典集合操作有什么内置功能吗?我的具体实现是针对ArrayList的,但这听起来应该适用于Collection的所有子类。我正在寻找类似这样的东西:

代码语言:javascript
复制
ArrayList<Integer> setA ...
ArrayList<Integer> setB ...
ArrayList<Integer> setAintersectionB = setA.intersection(setB);
ArrayList<Integer> setAminusB = setA.subtract(setB);

经过一番搜索,我只能找到自己的解决方案。此外,我意识到我可能混淆了"Set“和"Collection”的概念,分别不允许和允许重复。也许这真的只是Set接口的功能?

在没有人知道任何内置功能的情况下,也许我们可以使用它作为标准实践Java set操作代码的存储库?我想这个轮子已经被重新发明过无数次了。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-02 19:33:21

交集使用Collection.retainAll完成;减法使用Collection.removeAll完成;并集使用Collection.addAll完成。在每种情况下,as Set的行为类似于set,而List的行为类似于list。

作为可变对象,它们在适当的位置操作。如果想要保持原始可变对象不变,则需要显式复制。

票数 109
EN

Stack Overflow用户

发布于 2008-10-02 19:24:42

我推荐Google GuavaSets类似乎就是您想要的东西。它有一个intersection方法和一个difference方法。

如果你感兴趣,This presentation可能是你想看的东西。它指的是Google Collections,这是Guava的原名。

票数 16
EN

Stack Overflow用户

发布于 2008-10-02 19:09:16

您是否正在寻找java.util.Set接口(及其实现HashSet和TreeSet (已排序))?

该接口定义了看起来像substract()的removeAll(集合c)和看起来像交集的retainAll(集合c)。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/163998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档