标签 Apache
 标签 CollectionUtils
 分类 Java
 分类 技术文章

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;
});
目录