Java:是否有一种简单、快速的方法可以将 AND、OR 或 XOR 组合在一起?
也就是说,如果我有两个或更多集合,并且我想返回一个新集合,其中包含以下任一集合:
- 每个集合共有的所有元素 (AND)。
- 每组的所有元素总计 (OR)。
- 每组的所有元素都是独一无二的。 (异或)。
有没有一种简单的、预先存在的方法可以做到这一点?
编辑:这是错误的术语,不是吗?
That is, if I had two or more sets, and I wanted to return a new set containing either:
- All of the elements each set has in common (AND).
- All of the elements total of each set (OR).
- All of the elements unique to each set. (XOR).
Is there an easy, pre-existing way to do that?
Edit: That's the wrong terminology, isn't it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
假设 2 集合对象 a 和 b
AND(两个集合的交集)
OR(两个集合的并集)
XOR
要么滚动你自己的循环:
要么执行以下操作:
请参阅 Set文档 和此页面。 欲了解更多。
Assuming 2 Set objects a and b
AND(intersection of two sets)
OR(union of two sets)
XOR
either roll your own loop:
or do this:
See the Set documentation and this page. For more.
您可以使用 Google- Collections Sets 类 具有交集()、联合() 和对称差值() 方法。
You can use the Google-Collections Sets class which has the methods intersection() union() and symmetricDifference().
@米尔豪斯 说:
看起来如果你有集合
s1
和s2
你可以这样做来获得异或:s1
复制到s3
s1.removeAll(s2);
(s1 现在包含 s2 中不存在的所有元素)s2.removeAll(s3);
(s2 现在包含 s3 中不存在的所有元素 =旧的 s1)s1.addAll(s2);
(s1 现在包含上述两个集合的并集)@Milhous said:
It seems like if you had sets
s1
ands2
you could do this to get XOR:s1
tos3
s1.removeAll(s2);
(s1 now contains all elements not in s2)s2.removeAll(s3);
(s2 now contains all elements not in s3 = the old s1)s1.addAll(s2);
(s1 now contains the union of the above two sets)查看集合 api。 如果你使用 addAll 你可以得到 or 。 如果您使用retainAll,您可以获得and。 我不知道异或。
编辑:来自设置的文档。
...如果指定的集合也是一个集合,则 addAll 操作会有效地修改此集合,使其值是两个集合的并集。
....如果指定的集合也是一个集合,则此操作有效地修改该集合,使其值是两个集合的交集。
check out the sets api. if you use addAll you can get or. If you use retainAll you can get the and. I dont know about the Xor.
Edit: from the set documentation.
...If the specified collection is also a set, the addAll operation effectively modifies this set so that its value is the union of the two sets.
....If the specified collection is also a set, this operation effectively modifies this set so that its value is the intersection of the two sets.
我非常确定 Jakarta Common Collections API 支持并集、交集等。
如果 Google Collections API 不支持,我会感到惊讶。
I'm pretty sure that Jakarta Common Collections API supports unions, intersections etc.
I'd be amazed if the Google Collections API didn't as well.