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

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

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

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

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

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

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

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

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

你可能感兴趣的:(泛型方法——一个Set实用工具)