JAVA中的最强大的工具类 CollectionUtils使用指
2021-09-15 本文已影响0人
i小灰
//处理工具依赖
implementation 'org.apache.commons:commons-collections4:4.4'
CollectionUtils在真实项目中,是一个非常好用的工具类,使用非常频繁。它可以使代码更加简洁和安全。刚好在工作中利用这个工具类重构代码,顺便总结下分享分享:
//checking inclusion
List<Integer> list1 = Arrays.asList(1, 2, 5);
List<Integer> list2 = Arrays.asList(0, 2, 5);
//List1中个性元素 差集(集合相减) list1扣除list2
System.out.println(CollectionUtils.subtract(list1, list2));//[1]
//List1=2中个性元素 差集(集合相减) list1扣除list2
System.out.println(CollectionUtils.subtract(list2, list1)); //[0]
//List1、List2都个性元素 对称差集 安卓这里暂时没有这个方法
// System.out.println(CollectionUtils.symmetricDifference(set1, set2)); //[1, 0]
//List1、List2交集
System.out.println(CollectionUtils.intersection(list2, list1)); //[2, 5]
//List1、List2并集
System.out.println(CollectionUtils.union(list1, list2));//[1, 2, 5, 0]
//2个数组取交集 的补集
System.out.println(CollectionUtils.disjunction(list1, list2));//[0, 1]
//集合是否相等
System.out.println(CollectionUtils.isEqualCollection(list1,list2));//false
//集合是否不为空
System.out.println(CollectionUtils.isNotEmpty(list1));//true
//集合为空判断,与isEmpty()区别于多了null值判断,很实用
System.out.println(CollectionUtils.isEmpty(list1));//false
其他用法
emptyIfNull( coll) 如果集体为null返回一个空的集合
union( coll1, coll2) 合集
intersection( coll1, coll2) 交集
disjunction( coll1, coll2) 交集的补集
subtract( coll1, coll2) 差集
containsAll( coll1, coll2) 是否全部包含
containsAny( coll1, coll2) 是否 任一包含
isSubCollection(coll1,coll2) 是否为子集
getCardinalityMap(coll) 查询基数
filter 过滤
filterInverse 反相过滤
transform 转换
select 查询
selectRejected 反相查询
collect 投影
addIgnoreNull( collection, object) 添加 排除Null对象
addAll 合并
collate(coll1,coll2) 合并后排序
get(Object object, int index) 按下标查找,适用于:map,array,Iterator
size(Object object) 查询容器的大小,适用于:map,array,Iterator
reverseArray() 倒序
extractSingleton(collection) 取出独一值,如果集合存在多值则抛出异常
removeAll 移除所有