我编写了一个包含两个不同数字集合的程序,我想知道如何从这两个集合中获得并集、交集和集合差?我知道 BitSet 有方法,但这些方法在这里不起作用。
public class Collections {
public static void main(String[] args) {
// 1. Collection
Set<Integer> grp1 = new HashSet<Integer>();
grp1.add(1);
grp1.add(2);
grp1.add(3);
grp1.add(4);
grp1.add(5);
// printing 1. collection
System.out.println("1. collection: ");
Iterator<Integer> i = grp1.iterator();
while(i.hasNext()) {
int numbers1 = i.next();
System.out.print(numbers1 + " ");
}
System.out.println();
// 2. collection
Set<Integer> grp2 = new HashSet<Integer>();
grp2.add(8);
grp2.add(7);
grp2.add(6);
grp2.add(5);
grp2.add(4);
// printing 2. collection
System.out.println("2. collection: ");
Iterator<Integer> y = grp2.iterator();
while(y.hasNext()) {
int numbers2 = y.next();
System.out.print(numbers2 + " ");
// Union
// Intersection
// Difference
}
}
}
最佳答案
联盟:
Set<Integer> union = new HashSet<>(grp1);
union.addAll(grp2);
交叉点:
Set<Integer> intersection = new HashSet<>(grp1);
intersection.retainAll(grp2);
区别:
Set<Integer> diff = new HashSet<>(grp1);
diff.removeAll(grp2);
关于Java 并集、交集和差集的集合方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768997/