java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java求交集、并集、差集

Java如何求交集、并集、差集

作者:鼠鼠我呀2

这篇文章主要介绍了Java如何求交集、并集、差集问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Java求交集、并集、差集

	public static void main(String[] args) {
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> set2 = new HashSet<>();
        Set<Integer> set3 = new HashSet<>();
        // 交集
        crossSet(set1, set2, set3);
        //并集
        sumSet(set1, set2, set3);
        //差集
        diffSet(set1, set2, set3);
    }

    public static void initSet(Set<Integer> set1, Set<Integer> set2, Set<Integer> set3) {
        set1.clear();
        set2.clear();
        set3.clear();
        
        set1.add(1);
        set1.add(2);

        set2.add(1);
        set2.add(3);

        set3.add(1);
        set3.add(4);
    }

交集(retainAll)

注意:

泛型为引用数据类型需要重写equals()和hashCode()方法。

	public static void crossSet(Set<Integer> set1, Set<Integer> set2, Set<Integer> set3) {
        initSet(set1,set2,set3);
        set1.retainAll(set2);
        set1.retainAll(set3);
        System.out.println("set1 set2 set3的交集是:" + set1);
    }

并集(addAll)

        public static void sumSet(Set<Integer> set1, Set<Integer> set2, Set<Integer> set3) {
        initSet(set1,set2,set3);
        set1.addAll(set2);
        set1.addAll(set3);
        System.out.println("set1 set2 set3的并集是:" + set1);
    }

求差集(removeAll)

	public static void diffSet(Set<Integer> set1, Set<Integer> set2, Set<Integer> set3) {
        initSet(set1,set2,set3);
        set1.removeAll(set2);
        set1.removeAll(set3);
        System.out.println("set1 set2 set3的差集是:" + set1);
    }

结果展示

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文