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
posted on 2023-03-20 15:30  阿寕cc  阅读(119)  评论(0)    收藏  举报