java.util.Collection 的经典集合操作

2022-08-31 15:07:09

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

ArrayList<Integer> setA ...
ArrayList<Integer> setB ...
ArrayList<Integer> setAintersectionB = setA.intersection(setB);
ArrayList<Integer> setAminusB = setA.subtract(setB);

经过一番搜索,我只能找到本土的解决方案。另外,我意识到我可能会混淆“集合”的概念和“集合”的概念,分别不允许和允许重复。也许这真的只是 Set 接口的功能?

如果没有人知道任何内置功能,也许我们可以将其用作标准实践Java集操作代码的存储库?我想这个轮子已经被重新发明了无数次。


答案 1

交叉点与 ;用 ; 减法与 并集。在每种情况下,as 将像一个集合一样,而 a 将像一个列表一样起作用。Collection.retainAllCollection.removeAllCollection.addAllSetList

作为可变对象,它们在原地运行。如果要保留原始可变对象不变,则需要显式复制。


答案 2

我会推荐谷歌番石榴Sets 类似乎正是您要查找的内容。它有一个交集法和一个差分法。

如果您有兴趣,此演示文稿可能是您想要观看的内容。它指的是Google Collections,这是Guava的原名。