▚ 01 交集 intersection
import java.io.IOException;
import java.util.stream.Collectors;
import java.util.Set;
import java.util.HashSet;
public class set_intersection {
public static void main(String[] args) throws IOException {
Set<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set1.add(5);
set1.add(6);
Set<Integer> set2 = new HashSet<>();
set2.add(0);
set2.add(2);
set2.add(3);
set2.add(6);
System.out.println("set1: " + set1);
System.out.println("set2: " + set2);
Set<Integer> res = set1.stream().filter(e -> set2.contains(e)).collect(Collectors.toSet());
System.out.println("After intersection [stream]: " + res);
set1.retainAll(set2);
System.out.println("After intersection: [retainAll]" + set1);
}
}
set1: [1, 2, 3, 4, 5, 6]
set2: [0, 2, 3, 6]
After intersection [stream]: [2, 3, 6]
After intersection [retainAll]: [2, 3, 6]
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f80a67002194c2ea9d2cb28f911a3f5.png#pic_center)
▚ 02 并集union
import java.io.IOException;
import java.util.Set;
import java.util.HashSet;
public class set_union {
public static void main(String[] args) throws IOException {
Set<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set1.add(5);
set1.add(6);
Set<Integer> set2 = new HashSet<>();
set2.add(0);
set2.add(2);
set2.add(3);
set2.add(6);
System.out.println("set1: " + set1);
System.out.println("set2: " + set2);
set1.addAll(set2);
System.out.println("After intersection: " + set1);
}
}
set1: [1, 2, 3, 4, 5, 6]
set2: [0, 2, 3, 6]
After intersection: [0, 1, 2, 3, 4, 5, 6]
![在这里插入图片描述](https://img-blog.csdnimg.cn/9f80a67002194c2ea9d2cb28f911a3f5.png#pic_center)
▚ 03 差集difference
import java.io.IOException;
import java.util.stream.Collectors;
import java.util.Set;
import java.util.HashSet;
public class set_difference {
public static void main(String[] args) throws IOException {
Set<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
set1.add(4);
set1.add(5);
set1.add(6);
Set<Integer> set2 = new HashSet<>();
set2.add(0);
set2.add(2);
set2.add(3);
set2.add(6);
System.out.println("set1: " + set1);
System.out.println("set2: " + set2);
Set<Integer> res = set1.stream().filter(e -> !set2.contains(e)).collect(Collectors.toSet());
System.out.println("After difference [stream]: " + res);
set1.removeAll(set2);
System.out.println("After difference [removeAll]: " + set1);
}
}
set1: [1, 2, 3, 4, 5, 6]
set2: [0, 2, 3, 6]
After difference [stream]: [1, 4, 5]
After difference [removeAll]: [1, 4, 5]
![在这里插入图片描述](https://img-blog.csdnimg.cn/b0c58a06ee0b46baa026b3f949087384.jpeg#pic_center)