一、交集
java中交集使用 A.retainAll(B) ,交集的结果在集合A中。
1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 交集 8 8 * 9 9 * @author zhongtao on 2018/5/30 1010 */ 1111 public class Intersection { 1212 /** 1313 * 测试简单交集 1414 */ 1515 @Test 1616 public void testSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 2424 set2.add("c"); 2525 set2.add("d"); 2626 set2.add("e"); 2727 2828 //交集 2929 set1.retainAll(set2); 3030 System.out.println("交集是 " + set1); //交集是 [c] 3131 } 3232 }
二、并集
并集使用addAll,A.addAll(B) 因为set本身就去重,所有直接全部添加到一个集合中取并集。
1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 并集 8 8 * 9 9 * @author zhongtao on 2018/5/31 1010 */ 1111 public class UnionSet { 1212 /** 1313 * 并集测试 1414 */ 1515 @Test 1616 public void testUnionSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 2424 set2.add("b"); 2525 set2.add("c"); 2626 set2.add("d"); 2727 2828 set1.addAll(set2); 2929 System.out.println("并集是" + set1); //并集是[a, b, c, d] 3030 } 3131 }
三、差集
差集使用removeAll方法,去掉一集合中包含的另一个集合的值。A.removeAll(B)。
1 1 import org.junit.Test; 2 2 3 3 import java.util.HashSet; 4 4 import java.util.Set; 5 5 6 6 /** 7 7 * 差集 8 8 * 9 9 * @author zhongtao on 2018/5/31 1010 */ 1111 public class DifferenceSet { 1212 /** 1313 * 差集测试 1414 */ 1515 @Test 1616 public void testDifferenceSet() { 1717 Set<String> set1 = new HashSet<>(); 1818 Set<String> set2 = new HashSet<>(); 1919 2020 set1.add("a"); 2121 set1.add("b"); 2222 set1.add("c"); 2323 set1.add("d"); 2424 2525 set2.add("c"); 2626 set2.add("d"); 2727 set2.add("e"); 2828 set2.add("f"); 2929 3030 set1.removeAll(set2); 3131 System.out.println("差集是 " + set1); //差集是 [a, b] 3232 } 3333 }