Java中多个集合的交集,并集和差集
程序员文章站
2022-06-30 14:27:10
一、交集 java中交集使用 A.retainAll(B) ,交集的结果在集合A中。 二、并集 并集使用addAll,A.addAll(B) 因为set本身就去重,所有直接全部添加到一个集合中取并集。 三、差集 差集使用removeAll方法,去掉一集合中包含的另一个集合的值。A.removeAll ......
一、交集
java中交集使用 A.retainAll(B) ,交集的结果在集合A中。
1 import org.junit.Test; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 /** 7 * 交集 8 * 9 * @author zhongtao on 2018/5/30 10 */ 11 public class Intersection { 12 /** 13 * 测试简单交集 14 */ 15 @Test 16 public void testSet() { 17 Set<String> set1 = new HashSet<>(); 18 Set<String> set2 = new HashSet<>(); 19 20 set1.add("a"); 21 set1.add("b"); 22 set1.add("c"); 23 24 set2.add("c"); 25 set2.add("d"); 26 set2.add("e"); 27 28 //交集 29 set1.retainAll(set2); 30 System.out.println("交集是 " + set1); //交集是 [c] 31 } 32 }
二、并集
并集使用addAll,A.addAll(B) 因为set本身就去重,所有直接全部添加到一个集合中取并集。
1 import org.junit.Test; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 /** 7 * 并集 8 * 9 * @author zhongtao on 2018/5/31 10 */ 11 public class UnionSet { 12 /** 13 * 并集测试 14 */ 15 @Test 16 public void testUnionSet() { 17 Set<String> set1 = new HashSet<>(); 18 Set<String> set2 = new HashSet<>(); 19 20 set1.add("a"); 21 set1.add("b"); 22 set1.add("c"); 23 24 set2.add("b"); 25 set2.add("c"); 26 set2.add("d"); 27 28 set1.addAll(set2); 29 System.out.println("并集是" + set1); //并集是[a, b, c, d] 30 } 31 }
三、差集
差集使用removeAll方法,去掉一集合中包含的另一个集合的值。A.removeAll(B)。
1 import org.junit.Test; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 /** 7 * 差集 8 * 9 * @author zhongtao on 2018/5/31 10 */ 11 public class DifferenceSet { 12 /** 13 * 差集测试 14 */ 15 @Test 16 public void testDifferenceSet() { 17 Set<String> set1 = new HashSet<>(); 18 Set<String> set2 = new HashSet<>(); 19 20 set1.add("a"); 21 set1.add("b"); 22 set1.add("c"); 23 set1.add("d"); 24 25 set2.add("c"); 26 set2.add("d"); 27 set2.add("e"); 28 set2.add("f"); 29 30 set1.removeAll(set2); 31 System.out.println("差集是 " + set1); //差集是 [a, b] 32 } 33 }