100个Java工具类之44:集合工具类Apache之ListUtils

100个Java工具类之44:集合工具类Apache之ListUtils

精选文章moguli202025-05-09 7:39:567A+A-

本文主要讲述:集合工具类Apache之
org.apache.commons.collections.ListUtils

对于集合的操作,Apache提供了很多工具类,如:CollectionUtils、ListUtils、SetUtils、MapUtils等,本文主要列举ListUtils的一些用法。

一、判断两集合是否相等

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = Arrays.asList("1", "3");
boolean flag = ListUtils.isEqualList(list1, list2);
输出:false

二、集合合并(去重)

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = Arrays.asList("1", "3");
List<String> list3 = ListUtils.sum(list1, list2);
输出:[2, 1, 3]

三、取并集

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = Arrays.asList("1", "3");
List<String> list3 = ListUtils.union(list1, list2);
输出:[1, 2, 1, 3]

四、取交集

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = Arrays.asList("1", "3");
List<String> list3 = ListUtils.intersection(list1, list2);
输出:[1]
List<String> list4 = ListUtils.retainAll(list1, list2);
输出:[1]

五、取差集(集合1去除集合2中的所有元素)

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = Arrays.asList("1", "3");
List<String> list3 = ListUtils.subtract(list1, list2);
输出:[2]
List<String> list4 = ListUtils.removeAll(list1, list2);
输出:[2] 

六、生成固定类型列表

List<Object> list1 = Arrays.asList("1", "2");
List<Object> list3 = ListUtils.typedList(list1, String.class);
输出:[1, 2]
list3.add(1);
输出:java.lang.IllegalArgumentException: 
Cannot add Object '1' - Predicate rejected it

七、生成固定大小列表

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = ListUtils.fixedSizeList(list1);
输出:[1, 2]
list1.add("3");
输出:java.lang.UnsupportedOperationException

八、给集合加锁

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = ListUtils.synchronizedList(list1);
输出:[1, 2]

九、生成不可修改集合(不能增减元素,只能查询)

List<String> list1 = Arrays.asList("1", "2");
List<String> list2 = ListUtils.unmodifiableList(list1);
输出:[1, 2]
list1.add("3");
输出:java.lang.UnsupportedOperationException

点赞永无BUG!

点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2