List 处理
- List 对象集合,根据对象的某个字段去重的方法
(1)使用 java8 自带的方法即可:(推荐使用该方法)
List<User> lists = 从某处得来的集合;
lists = lists.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getXxx))), ArrayList::new));
CollectionUtils
// 除非元素为null,否则向集合添加元素
CollectionUtils.addIgnoreNull(personList,null);
// 将两个已排序的集合a和b合并为一个已排序的列表,以便保留元素的自然顺序
CollectionUtils.collate(Iterable<? extends O> a, Iterable<? extends O> b)
// 将两个已排序的集合a和b合并到一个已排序的列表中,以便保留根据Comparator c的元素顺序
CollectionUtils.collate(Iterable<? extends O> a, Iterable<? extends O> b, Comparator<? super O> c)
// 返回该个集合中是否含有至少有一个元素
CollectionUtils.containsAny(Collection<?> coll1, T... coll2)
// 如果参数是null,则返回不可变的空集合,否则返回参数本身。(很实用 ,最终返回List EMPTY_LIST = new EmptyList<>())
CollectionUtils.emptyIfNull(Collection<T> collection)
// 空安全检查指定的集合是否为空
CollectionUtils.isEmpty(Collection<?> coll)
// 空安全检查指定的集合是否为空
CollectionUtils.isNotEmpty(Collection<?> coll)
// 反转给定数组的顺序
CollectionUtils.reverseArray(Object[] array);
// 差集
CollectionUtils.subtract(Iterable<? extends O> a, Iterable<? extends O> b)
// 并集
CollectionUtils.union(Iterable<? extends O> a, Iterable<? extends O> b)
// 交集
CollectionUtils.intersection(Collection a, Collection b)
// 交集的补集(析取)
CollectionUtils.disjunction(Collection a, Collection b)
// 检查集合是否包含给定集合
CollectionUtils.isSubCollection(Collection<?> a, Collection<?> b)
// 用于过滤列表以移除不满足由谓词传递提供的条件的对象
CollectionUtils.filter(Iterable<T> collection, Predicate<? super T> predicate)
// 用于过滤列表以移除满足谓词传递提供的条件的对象
CollectionUtils.filterInverse(Iterable<T> collection, Predicate<? super T> predicate)