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

本文介绍了如何使用Java中的HashSet类来实现集合的交集、差集和并集操作。提供了三个静态方法,分别是intersectionSet()用于获取两个集合的交集,differenceSet()用于获取只存在于一个集合中的元素(差集),以及unionSet()用于获取两个集合的所有元素(并集)。这些方法对于处理数据集合的合并与筛选非常实用。
摘要由CSDN通过智能技术生成

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;

package site.duanzy.util;

import java.util.HashSet;
import java.util.Set;

/**
 * @author leo
 * @date 2022/6/16 19:12
 */
public class SetUtil {

    /**
     * 取交集(取两个集合中都存在的元素)
     * @return
     */
    public static Set<String> intersectionSet(Set<String> setA, Set<String> setB){
        Set<String> resSet = new HashSet<>();
        resSet.addAll(setA);
        resSet.retainAll(setB);
        return resSet;
    }

    /**
     * 取差集(取存在一个集合中,但不存在于另外一个集合中的元素)
     * @return 存在A集合,不存在B集合的数据
     */
    public static Set<String> differenceSet(Set<String> setA, Set<String> setB){
        Set<String> resSet = new HashSet<>();
        resSet.addAll(setA);
        resSet.removeAll(setB);
        return resSet;
    }

    /**
     * 取并集(取两个集合中全部的元素,这个很简单,都把他们添加进去就行)
     * @return
     */
    public static Set<String> unionSet(Set<String> setA, Set<String> setB){
        Set<String> resSet = new HashSet<>();
        resSet.addAll(setA);
        resSet.addAll(setB);
        return resSet;
    }
}

转载自:【Java】对两个Set取交集,差集,并集 - 走看看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值