在 Java 中(也许使用 Guava?),是否提供了一些方法来获取两个Collection
s 的差异,例如 aList
和 aSet
而无需修改其中一个Collection
(否则会有collection1.removeAll(collection2)
?
在 Guava 中有Sets.difference(set1,set2)
,但它仅适用于Set
s,不适用于任意集合。
感谢您的任何提示!
在 Java 中(也许使用 Guava?),是否提供了一些方法来获取两个Collection
s 的差异,例如 aList
和 aSet
而无需修改其中一个Collection
(否则会有collection1.removeAll(collection2)
?
在 Guava 中有Sets.difference(set1,set2)
,但它仅适用于Set
s,不适用于任意集合。
感谢您的任何提示!
Collection
您可以使用内置的s过滤第一个Predicate
:
Collections2.filter(c1, Predicates.not(Predicates.in(c2))
它适用于任何类型的Collection
s,但显然如果c2
是 a更好Set
。
ApacheCommons CollectionUtils 有一个名为disjuction的方法
返回包含给定 Iterables 的唯一析取(对称差)的 Collection