博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

CollectionUtils工具类

Posted on 2022-07-31 19:18  和风细雨汪汪  阅读(562)  评论(0编辑  收藏  举报

package org.apache.commons.collections;

List list1 = new ArrayList();
list1.add("1111");
list1.add("2222");
list1.add("3333");

    List<String> list2 = new ArrayList();
    list2.add("3333");
    list2.add("4444");
    list2.add("5555");

1、CollectionUtils.union(list1,list2); ##[1111, 2222, 3333, 4444, 5555]
合并两个集合,不去重

2、CollectionUtils.intersection(list1,list2); ##[3333]
得到两个集合中相同的元素

3、CollectionUtils.disjunction(list1,list2) ##[1111, 2222, 4444, 5555]
取两个集合的补集

4、CollectionUtils.subtract(list1,list2) ##[1111, 2222]
list1 - list2 = 剩余元素组成的集合

5、CollectionUtils.containsAny(list1,list2) ##true
长的集合包含短的集合的任何一个数据true

6、CollectionUtils.getCardinalityMap(list1) ##{1111=1, 2222=1, 3333=1}
统计集合中各元素出现的次数,并Map<Object, Integer>输出

7、CollectionUtils.isSubCollection(list1,list2)
list1是否list2集合子集,list1集合大小<=list2集合大小

8、CollectionUtils.isProperSubCollection(list1, list2)
a是否b集合子集,a集合大小<b集合大小

9、CollectionUtils.isEqualCollection(list1,list2)
两个集合是否相同

10、CollectionUtils.cardinality("1111",list1)
某元素在集合中出现的次数

11、CollectionUtils.find(list1,list ->Integer.parseInt(list.toString())>2000) ##2222
返回集合中满足函数式的唯一元素,只返回最先处理符合条件的唯一元素

12、CollectionUtils.filter(list1,list -> Integer.parseInt(list.toString()) >2000); ##2222 3333
过滤集合中满足函数式的所有元素

13、CollectionUtils.countMatches(list1,list -> Integer.parseInt(list.toString()) >2000) ##2
返回集合中满足函数式的数量

14、CollectionUtils.select(list1,list -> Integer.parseInt(list.toString()) >2000) ## [2222, 3333]
将满足表达式的元素存入新集合中并返回新集合元素对象

15、CollectionUtils.selectRejected(list1,list -> Integer.parseInt(list.toString()) >2000) ##[1111]
将不满足表达式的元素存入新集合中并返回新集合元素对象

16、CollectionUtils.addIgnoreNull(list1, "4444") ##[1111, 2222, 3333, 4444]
除非元素为null,否则向集合添加元素

17、CollectionUtils.addAll(list1, new String[]{"4444","5555"}) ##[1111, 2222, 3333, 4444, 5555]
将一个数组或集合中的元素全部添加到另一个集合中

18、CollectionUtils.isEmpty(list1)
判断集合是否为空

19、CollectionUtils.isNotEmpty(list1)
判断集合不为空