当前位置:  开发笔记 > 编程语言 > 正文

Java:有一种简单,快速的AND,OR或XOR集合方法吗?

如何解决《Java:有一种简单,快速的AND,OR或XOR集合方法吗?》经验,为你挑选了2个好方法。

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

    每个集合的所有元素都有共同点(AND).

    每组(OR)的所有元素总数.

    每组的所有元素都是独一无二的.(XOR).

是否有一种简单的,预先存在的方法可以做到这一点?

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



1> Ari Ronen..:

假设2设置对象a和b

AND(两组交集)

a.retainAll(b); 

或(两套联合)

a.addAll(b);

XOR要么滚动你自己的循环:

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); 

请参阅设置文档和此页面.更多.



2> axelclk..:

您可以使用具有方法intersection()union()和symmetricDifference()的Google-Collections Sets类.

Sets.intersection(set1, set2);
Sets.union(set1, set2);

SetView view = Sets.intersection(Sets.union(set1, set2), set3);
Set result = view.copyInto(new HashSet());

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有