[Java基础] 如何对List进行(交集/并集/补集)运算

前言

前几天. 工作中用到了List的交集, 并集, 补集. 运算. 之前有封装过相关的List工具类. 在此, 再次总结一下.

List 的交集/并集/补集 运算(原生方法)

  • 交集
    /**
     * 交集.
     * 注意直接使用 retainAll方法会改变原数据集合. 需要拷贝使用.
     */
    public static <T> List<T> intersection(java.util.List<T> listA, List<T> listB){
        if(CollectionUtils.isEmpty(listA)){
            return listB;
        } else if(CollectionUtils.isEmpty(listB)){
            return listA;
        }

        List<T> copyOfArrayListA = new ArrayList<>(listA);
        copyOfArrayListA.retainAll(listB);
        return copyOfArrayListA;
    }
  • 并集
    /**
     * 并集.
     */
    public static <T> List<T> union(java.util.List<T> listA, List<T> listB){
        if(CollectionUtils.isEmpty(listA)){
            return listB;
        } else if(CollectionUtils.isEmpty(listB)){
            return listA;
        }

        List<T> copyOfArrayListA = new ArrayList<>(listA);
        copyOfArrayListA.removeAll(listB);
        copyOfArrayListA.addAll(listB);
        return copyOfArrayListA;
    }
  • 补集
  • 要点
  • 测试

Collections工具包内


Reference

[1].

上一篇:自己动手实现springboot运行时执行java源码(运行时编译、加载、注册bean、调用)


下一篇:利用ListUtils对两list表取并集或差集