org.apache.commons.collections4.CollectionUtils
1.判断集合是否为空或者不为空
// 为空
CollectionUtils.isEmpty(null): true
CollectionUtils.isEmpty(new ArrayList()): true
CollectionUtils.isEmpty({a,b}): false
// 不为空
CollectionUtils.isNotEmpty(null): false
CollectionUtils.isNotEmpty(new ArrayList()): false
CollectionUtils.isNotEmpty({a,b}): true
2.并集CollectionUtils.union(listA, listB)
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
//2个数组取并集 [A, B, C, D, E, F, G, H, K]
System.out.println(ArrayUtils.toString(CollectionUtils.union(listA, listB)));
3.交集CollectionUtils.intersection(listA, listB)
String[] arrayA = new String[] { "A", "B", "C", "D", "E", "F" };
String[] arrayB = new String[] { "B", "D", "F", "G", "H", "K" };
List<String> listA = Arrays.asList(arrayA);
List<String> listB = Arrays.asList(arrayB);
// 2个数组取交集 [B, D, F]
System.out.println(ArrayUtils.toString(CollectionUtils.intersection(listA, listB)));
// 补集、差集 略
4.集合是否为空或不为空
// 集合是否为空
CollectionUtils.isEmpty(new ArrayList<>()); // true
CollectionUtils.isEmpty(null); // true
List<Person> boy = new ArrayList<>();
boy.add(new Girl());
CollectionUtils.isEmpty(boy); // false
// 集合是否不为空
CollectionUtils.isNotEmpty(new ArrayList<>()); // false
CollectionUtils.isNotEmpty(null); // false
List<Person> boy = new ArrayList<>();
boy.add(new Girl());
CollectionUtils.isNotEmpty(boy); // true
5.集合是否相等
class Person{
// ...
}
class Girl extends Person{
// ...
}
List<Integer> first = new ArrayList<>();
List<Integer> second = new ArrayList<>();
first.add(1);
first.add(2);
second.add(2);
second.add(1);
Girl goldGirl = new Girl();
List<Person> boy1 = new ArrayList<>();
boy1.add(new Girl());
List<Person> boy2 = new ArrayList<>();
boy2.add(new Girl());
List<Person> boy3 = new ArrayList<>();
boy3.add(goldGirl);
List<Person> boy4 = new ArrayList<>();
boy4.add(goldGirl);
// 比较两集合值
System.out.println(CollectionUtils.isEqualCollection(first,second)); //true
System.out.println(CollectionUtils.isEqualCollection(first,boy1)); //false
System.out.println(CollectionUtils.isEqualCollection(boy1,boy2)); //false
System.out.println(CollectionUtils.isEqualCollection(boy3,boy4)); //true
测试集合
List<String> 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");
6.补集
CollectionUtils.disjunction(list1,list2); // [1111, 2222, 4444, 5555]
7.差集
CollectionUtils.subtract(list1,list2); // [1111, 2222]
8.长的集合包含短的集合的任何一个数据返回true
CollectionUtils.containsAny(list1,list2); // true
9.统计集合中各元素出现的次数,并Map<Object, Integer>输出
CollectionUtils.getCardinalityMap(list1); // {1111=1, 2222=1, 3333=1}
10.list1是否list2集合子集
CollectionUtils.isSubCollection(list1,list2) // false
11.某元素在集合中出现的次数
CollectionUtils.cardinality("1111",list1); // 1
浙公网安备 33010602011771号