Apache CollectionUtils
1.1.CollectionUtils常用方法
集合判空
isEmpty(Collection coll)
判断集合是否为空,当然,isNotEmpty(Collection coll)
判断集合不为空。
String[] arr = {"H", "E", "L"};
List<String> list = Arrays.asList(arr);
CollectionUtils.isEmpty(list);
数组或集合求并集
使用union(final Collection a, final Collection b)
方法。
String[] arr1 = {"H", "E", "L"};
String[] arr2 = {"H", "W", "L"};
List<String> list1 = Arrays.asList(arr1);
List<String> list2 = Arrays.asList(arr2);
Collection union = CollectionUtils.union(list1, list2);
/* 结果为:[E, W, H, L]*/
System.out.println(ArrayUtils.toString(union));
数组或集合求交集
使用intersection(final Collection a, final Collection b)
方法。
Collection intersection = CollectionUtils.intersection(list1, list2);
/* 结果为:[H, L]*/
System.out.println(ArrayUtils.toString(intersection));
数组或集合交集的补集
使用disjunction(final Collection a, final Collection b)
方法。
Collection disjunction = CollectionUtils.disjunction(list1, list2);
/* 结果为:[E, W]*/
System.out.println(ArrayUtils.toString(disjunction));
数组或集合交集的差集
使用subtract(final Collection a, final Collection b)
方法,返回的是a对于b的差集。
Collection subtract = CollectionUtils.subtract(list1, list2);
/*结果为:[W]*/
System.out.println(ArrayUtils.toString(subtract));
判断是否为子集
使用isSubCollection(final Collection a, final Collection b)
方法,判断集合a是否是集合b的子集;
boolean subCollection = CollectionUtils.isSubCollection(list2, list1);
判断两个集合是否相等
使用isEqualCollection(final Collection a, final Collection b)
方法。
boolean equalCollection = CollectionUtils.isEqualCollection(list1, list2);
过滤集合中满足条件的数据
使用CollectionUtils.filter
方法。
List<Integer> list = new ArrayList<>();
list.add(4);
list.add(5);
list.add(6);
list.add(7);
CollectionUtils.filter(list,item ->{
return Integer.valueOf(item.toString()) > 5;
});
System.out.println(list); = [6, 7]
返回集合中满足条件的元素数量
使用CollectionUtils.countMatches
方法。
int count = CollectionUtils.countMatches(list,item -> {
return Integer.valueOf(item.toString()) > 6;
});
System.out.println(count); = 1
判断集合中是否存在满足条件的元素
使用CollectionUtils.exists
方法。
boolean exists = CollectionUtils.exists(list, item -> {
return Integer.valueOf(item.toString()) > 6;
});
System.out.println(exists); = true
从集合中查找满足条件的第一个元素
使用CollectionUtils.find
方法。
Object o = CollectionUtils.find(list, item -> {
return Integer.valueOf(item.toString()) > 2;
});
System.out.println(o.toString()); = 6
返回符合条件的Collection
使用CollectionUtils.select
方法。
Collection select = CollectionUtils.select(list, item -> {
return Integer.valueOf(item.toString()) > 2;
});
返回不符合条件的Collection
使用CollectionUtils.selectRejected
方法,与CollectionUtils.select
相反。
Collection select = CollectionUtils.selectRejected(list, item -> {
return Integer.valueOf(item.toString()) > 2;
});