本文主要講述:字元串工具類Apache之
org.apache.commons.collections4.CollectionUtils
apache提供的工具類中,CollectionUtils使用場景是比較多的,功能也非常齊全,下面将具體介紹每種用法。
避免代碼重複,影響閱讀體驗,是以将列印方法省略。
一、擷取集合的并集、交集、補集、差集
//擷取兩集合并集(自動去重)
List<Integer> list1 = Stream.of(1, 2, 3).collect(Collectors.toList());
List<Integer> list2 = Stream.of(2, 3, 4).collect(Collectors.toList());
List<Integer> union = (List<Integer>) CollectionUtils.union(list1, list2);
輸出:并集:[1, 2, 3, 4]
//擷取兩集合交集
List<Integer> intersection = (List<Integer>) CollectionUtils.intersection(list1, list2);
輸出:[2, 3]
//擷取兩集合交集的補集:list1 + list2 - 交集
List<Integer> disjunction = (List<Integer>)CollectionUtils.disjunction(list1, list2);
輸出:[1, 4]
//擷取兩集合的差集:list1 - 交集
List<Integer> subtract = (List<Integer>)CollectionUtils.subtract(list1, list2);
輸出:[1]
二、集合判空和判非空
boolean flag = CollectionUtils.isEmpty(new ArrayList<>());
輸出:true
boolean flag = CollectionUtils.isEmpty(null);
輸出:true
List<String> list = new ArrayList<>();
list.add("");
//集合中有空字元串的元素,并不是空集合
boolean flag = CollectionUtils.isEmpty(list);
輸出:false
boolean flag4 = CollectionUtils.isNotEmpty(list);
輸出:true
三、比較集合是否相等
兩集合是否相等,比較的是集合元素和元素數量,與順序無關。
List<Integer> list1 = Stream.of(1, 2).collect(Collectors.toList());
List<Integer> list2 = Stream.of(2, 1).collect(Collectors.toList());
boolean flag = CollectionUtils.isEqualCollection(list1, list2);
輸出:true
四、集合中添加/删除另一個數組/集合
//集合添加數組
String[] arr = {"1", "2"};
List list = new ArrayList();
list.add("3");
CollectionUtils.addAll(list, arr);
System.out.println(list);
輸出:[3, 1, 2]
List list2 = new ArrayList();
list2.add("4");
//集合添加集合
CollectionUtils.addAll(list, list2);
System.out.println(list);
輸出:[3, 1, 2, 4]
//集合删除集合 需要注意的是:removeAll需要使用傳回的新集合接收
list = (List) CollectionUtils.removeAll(list, list2);
輸出:[3, 1, 2]
五、集合添加非空元素
List list = new ArrayList();
CollectionUtils.addIgnoreNull(list, null);
CollectionUtils.addIgnoreNull(list, "1");
輸出:[1]
六、擷取集合中每個元素出現次數
List<String> list = Arrays.asList(new String[]{"1", "2", "2", "3"});
Map<String, Integer> map = CollectionUtils.getCardinalityMap(list);
輸出:{1=1, 2=2, 3=1}
七、擷取集合元素并操作,相當于周遊
List<String> list = Arrays.asList(new String[]{"1", "2", "3"});
Collection collect = CollectionUtils.collect(list, value -> {
return value += ".00";
});
輸出:[1.00, 2.00, 3.00]
八、集合通過某規則進行過濾
List<Integer> list = new ArrayList<>();
list.addAll(Arrays.asList(1, 2, 3, 4, 5));
CollectionUtils.filterInverse(list, i -> {
if(i % 2 == 0) {
return true;
}
return false;
});
輸出:[1, 3, 5]
感謝大家的閱讀,碼字不易,感謝支援,喜歡的給個贊吧~