C 是 Set<T>
类型的集合,F(x)返回一个Set的集合,我想做的是在集合之间进行并集、交集、差集等操作
// C union ( F(X) \ F(Y))
C.addAll( F(X).removeAll( F(Y)))); //error boolean because removeAll returns a boolean
我可以选择
C_aux = new HashSet<T> ( F(X));
C_aux.removeAll( F(Y));
C.addAll( C_aux);
无论如何,在不声明辅助集合的情况下执行此操作? (跳过/忽略 boolean 返回)
最佳答案
java.util.Collection API:
a.retainAll(b); // intersection
a.removeAll(b); // difference
a.addAll(b); // union
Google Guava com.google.common.collect.Sets API:
Sets.union(a, b);
Sets.intersection(a, b);
Sets.difference(a, b);
如果您确实需要的话,您可以编写一行代码:
Sets.union(C, Sets.difference(F(X), F(Y)))
但请记住结果集是只读的,因此如果您需要真正的 Set,请使用 C.removeAll
关于java - 集合 addAll removeAll 返回 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13648391/