欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

apache collections 的使用

程序员文章站 2024-01-13 22:25:16
...

写文章时最新的版本为:
org.apache.commons:commons-collections4:4.2

我来总结几个来简化开发的类:

首先在开发当中用collections 1.x, 2.x, 3.x 由于引入的依赖过多,有可能会引起maven jar包依赖冲突(线上的一次事故,NoClassDefFoundError),但是4.x采用了不同的artifactId,完美的避开了jar的依赖冲突。

1、CollectionUtils.isEmpty() 和 CollectionUtils.isNotEmpty()

if (list==null || list.isEmpty()) {
}

if (list!=null && !list.isEmpty()) {
}

我们可以简化为

if (CollectionUtils.isEmpty(list)){
}

if (CollectionUtils.isNotEmpty(list)){
}

是不是觉得代码的可读性一下子提升了很多呢?

2、 ListUtils.defaultIfNull();

如果是null 就默认返回一个值,少些一个if语句

3、求交集与并集, SetUtils.intersection()交集 SetUtils.union() 并集

    @Test
    public void test() {
        ListUtils.defaultIfNull(null, new ArrayList<>());
        Set<Integer> objectsA = new HashSet<>();
        objectsA.add(1);
        objectsA.add(2);
        objectsA.add(3);

        Set<Integer> objectsB = new HashSet<>();
        objectsB.add(2);
        objectsB.add(3);
        objectsB.add(4);

        Set set1 = SetUtils.intersection(objectsA, objectsB);
        System.out.println("set1.toString() = " + set1.toString());
        Set set2 = SetUtils.union(objectsA, objectsB);
        System.out.println("set2.toString() = " + set2.toString());
    }