美文网首页
泛型方法——一个Set实用工具

泛型方法——一个Set实用工具

作者: 呆呆李宇杰 | 来源:发表于2017-09-10 18:06 被阅读19次

创建一个用Set来表达数学中的关系式

这里通过使用泛型方法来创建一个Set工具类来表达数学中关于集合的关系表达式,并且可以运用于多个类型之中。

public class Sets {
    public static <T> Set<T> union(Set<T> a, Set<T> b) {
        Set<T> result = new HashSet<>(a);
        result.addAll(b);
        return result;
    }

    public static <T> Set<T> intersection(Set<T> a, Set<T> b) {
        Set<T> result = new HashSet<>(a);
        result.retainAll(b);
        return result;
    }

    public static <T> Set<T> difference(Set<T> superSet, Set<T> subSet) {
        Set<T> result = new HashSet<>(superSet);
        superSet.removeAll(subSet);
        return result;
    }

    public static <T> Set<T> complement(Set<T> a, Set<T> b) {
        return difference(union(a, b), intersection(a, b));
    }
}

在前三个方法中,都将第一个参数Set直接复制了一份,将Set中的所有引用都存入一个新的HashSet对象中,因此在方法内部并没有修改Set,而返回的值是一个全新的对象。
这四个方法分别表示以下的操作

  • union 并集
  • intersection 交集
  • difference差集
  • complement 补集

相关文章

  • Set、Map、异常

    泛型: 定义一个泛型类: 定义一个泛型方法 Set Set:集合接口 HashSet :无序(添加的顺序和存储的顺...

  • 泛型方法——一个Set实用工具

    创建一个用Set来表达数学中的关系式 这里通过使用泛型方法来创建一个Set工具类来表达数学中关于集合的关系表达式,...

  • Java 泛型

    泛型类 例如 泛型接口 例如 泛型通配符 泛型方法 类中的泛型方法 泛型方法与可变参数 静态方法与泛型 泛型上下边...

  • 泛型的使用

    泛型有三种使用方式,分别为:泛型类、泛型接口、泛型方法 泛型类 泛型接口 泛型通配符 泛型方法 静态方法与...

  • 【Swift进阶笔记】泛型

    泛型类型 可选类型是泛型 Array, Dictionary, Set也是泛型,如果不指定类型,系统默认为Any类...

  • Swift 项目基本写法收集

    泛型用法 GCD相关 懒加载 lazyloading get set 方法 私有方法,私有属性,变量之类的得用fi...

  • 【泛型】通配符与嵌套

    上一篇 【泛型】泛型的作用与定义 1 泛型分类 泛型可以分成泛型类、泛型方法和泛型接口 1.1 泛型类 一个泛型类...

  • 泛型

    Kotlin 泛型详解 声明一个泛型类 声明一个泛型方法 泛型约束 List 和 List 是...

  • Java泛型

    泛型有三种实现方式,分别是泛型接口、泛型类、泛型方法。下面通过泛型方法来介绍什么是类型参数。 泛型方法声明方式:访...

  • 重走安卓进阶路——泛型

    ps.原来的标题 为什么我们需要泛型? 泛型类、泛型接口和泛型方法(泛型类和泛型接口的定义与泛型方法辨析); 如何...

网友评论

      本文标题:泛型方法——一个Set实用工具

      本文链接:https://www.haomeiwen.com/subject/ozrtsxtx.html