java - 集合 addAll removeAll 返回 boolean 值

标签 java

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/

相关文章:

java - 从 Seam 3 到 Apache DeltaSpike (seam-beans.xml)

java - 文件路径给出 NullPointer

java - 如何在 Swing 中正确移动绘制的多边形

java - 将Java连接到MySQL数据库

通过引用链: java. util.HashMap出现java.lang.UnsupportedOperationException

java - 将对象 arrayList 对象转换为 Integer

java - 获取函数以数组中的值作为输入JAVA

java - KStream 批处理窗口

java - 在 Glassfish/Payara 上禁用或隐藏 "ejb-timer-service-app"

java - 如何在ScrollViewer中放置图表?