【Java】对两个Set取交集,差集,并集

发布时间 2023-10-11 10:16:48作者: 追云逐梦

1、取交集(取两个集合中都存在的元素)

HashSet<String> setA = new HashSet<>();
HashSet<String> setB = new HashSet<>();
//用于存放结果
HashSet<String> resSet = new HashSet<>();
resSet.addAll(setA);
resSet.retainAll(setB);
return resSet;

2、取差集(取存在一个集合中,但不存在于另外一个集合中的元素)

HashSet<String> setA = new HashSet<>();
HashSet<String> setB = new HashSet<>();
//用于存放结果
HashSet<String> resSet = new HashSet<>();
resSet.addAll(setA);
resSet.removeAll(setB);
return resSet;

3、取并集(取两个集合中全部的元素,这个很简单,都把他们添加进去就行)

HashSet<String> setA = new HashSet<>();
HashSet<String> setB = new HashSet<>();
//用于存放结果
HashSet<String> resSet = new HashSet<>();
resSet.addAll(setA);
resSet.addAll(setB);
return resSet;

 

  1.  
    package site.duanzy.util;
  2.  
     
  3.  
    import java.util.HashSet;
  4.  
    import java.util.Set;
  5.  
     
  6.  
    /**
  7.  
    * @author leo
  8.  
    * @date 2022/6/16 19:12
  9.  
    */
  10.  
    public class SetUtil {
  11.  
     
  12.  
    /**
  13.  
    * 取交集(取两个集合中都存在的元素)
  14.  
    * @return
  15.  
    */
  16.  
    public static Set<String> intersectionSet(Set<String> setA, Set<String> setB){
  17.  
    Set<String> resSet = new HashSet<>();
  18.  
    resSet.addAll(setA);
  19.  
    resSet.retainAll(setB);
  20.  
    return resSet;
  21.  
    }
  22.  
     
  23.  
    /**
  24.  
    * 取差集(取存在一个集合中,但不存在于另外一个集合中的元素)
  25.  
    * @return 存在A集合,不存在B集合的数据
  26.  
    */
  27.  
    public static Set<String> differenceSet(Set<String> setA, Set<String> setB){
  28.  
    Set<String> resSet = new HashSet<>();
  29.  
    resSet.addAll(setA);
  30.  
    resSet.removeAll(setB);
  31.  
    return resSet;
  32.  
    }
  33.  
     
  34.  
    /**
  35.  
    * 取并集(取两个集合中全部的元素,这个很简单,都把他们添加进去就行)
  36.  
    * @return
  37.  
    */
  38.  
    public static Set<String> unionSet(Set<String> setA, Set<String> setB){
  39.  
    Set<String> resSet = new HashSet<>();
  40.  
    resSet.addAll(setA);
  41.  
    resSet.addAll(setB);
  42.  
    return resSet;
  43.  
    }
  44.  
    }