Java:有没有一种简单、快速的方法来对集合进行 AND、OR 或 XOR?

标签 java union set intersection

也就是说,如果我有两个或更多集合,并且我想返回一个新集合,其中包含:

  1. 每组的所有元素都有共同点 (AND)。
  2. 每个集合的所有元素的总和 (OR)。
  3. 每个集合独有的所有元素。 (XOR)。

有没有一种简单的、预先存在的方法来做到这一点?

编辑:这是错误的术语,不是吗?

最佳答案

假设 2 设置对象 a 和 b

AND(两个集合的交集)

a.retainAll(b); 

OR(两个集合的并集)

a.addAll(b);

异或 要么滚动你自己的循环:

foreach item
if(a.contains(item) and !b.contains(item) ||  (!a.contains(item) and b.contains(item)))
 c.add(item)

或者这样做:

c.addAll(a); 
c.addAll(b);
a.retainAll(b); //a now has the intersection of a and b
c.removeAll(a); 

Set documentation这个page .了解更多。

关于Java:有没有一种简单、快速的方法来对集合进行 AND、OR 或 XOR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/393968/

相关文章:

sql - 如何将LINQ中的两个查询合并为Fluent NHibernate?

sql - 让 Oracle 将 OR 连接谓词转换为 UNION ALL 操作

python - 创建一个 "dictionary of sets"

c++ - 集合和 vector 。 C++ 中的集合速度快吗?

java - 如何在 Libgdx Box2d 中保持 body 不渲染?

java - 我想打印除最后一个以外的所有字母,然后是最后两个,然后是最后 3 个

mysql - 联合与内连接,mysql错误

java - 如何使用 Java 7 将一个 Set 的元素附加到另一个 Set 的元素

java - 使用 Spray 访问 GAE 数据存储

java - 我在 java 中遇到问题,无法打印所有 swing 组件