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