public class ListKits extends Object
| 构造器和说明 |
|---|
ListKits() |
| 限定符和类型 | 方法和说明 |
|---|---|
static <T> List<T> |
difference(List<? extends T> list1,
List<? extends T> list2)
list1, list2的差集(在list1,不在list2中的对象),产生新List.
|
static <T> List<T> |
disjoint(List<? extends T> list1,
List<? extends T> list2)
list1, list2的补集(在list1或list2中,但不在交集中的对象,又叫反交集)产生新List.
|
static <T> List<T> |
emptyListIfNull(List<T> list)
如果list为null,转化为一个安全的空List.
|
static <T> T |
getFirst(List<T> list)
获取第一个元素, 如果List为空返回 null.
|
static <T> T |
getLast(List<T> list)
获取最后一个元素,如果List为空返回null.
|
static <T> List<T> |
intersection(List<? extends T> list1,
List<? extends T> list2)
list1, list2的交集(同时在list1和list2的对象),产生新List
copy from Apache Common Collection4 ListUtils,但其做了不合理的去重,因此重新改为性能较低但不去重的版本
与List.retainAll()相比,考虑了的List中相同元素出现的次数, 如"a"在list1出现两次,而在list2中只出现一次,则交集里会保留一个"a".
|
static <T> void |
notNullList(List<T> list)
清理掉List中的Null对象
copy from vjtools
|
static <T> List<T> |
singletonList(T o)
返回只含一个元素但结构特殊的List,节约空间.
|
static <T> List<T> |
synchronizedList(List<T> list)
返回包装后同步的List,所有方法都会被synchronized原语同步.
|
static <E> List<E> |
union(List<? extends E> list1,
List<? extends E> list2)
list1,list2的并集(在list1或list2中的对象),产生新List
对比Apache Common Collection4 ListUtils, 优化了初始大小
copy from vjtools
|
static <T> void |
uniqueNotNullList(List<T> list)
清理掉List中的Null对象,并唯一化
copy from vjtools
|
static <T> List<T> |
unmodifiableList(List<? extends T> list)
返回包装后不可修改的List.
|
public static <T> T getFirst(List<T> list)
copy from vjtools
T - list - public static <T> T getLast(List<T> list)
copy from vjtools
T - list - public static <T> List<T> emptyListIfNull(List<T> list)
注意返回的List不可写, 写入会抛出UnsupportedOperationException.
copy from vjtools
T - list - public static <T> List<T> singletonList(T o)
注意返回的List不可写, 写入会抛出UnsupportedOperationException.
copy from vjtools
T - o - public static <T> List<T> unmodifiableList(List<? extends T> list)
如果尝试写入会抛出UnsupportedOperationException.
copy from vjtools
T - list - public static <T> List<T> synchronizedList(List<T> list)
用于CopyOnWriteArrayList与 ArrayDequeue均不符合的场景
copy from vjtools
T - list - public static <T> void notNullList(List<T> list)
copy from vjtools
T - list - public static <T> void uniqueNotNullList(List<T> list)
copy from vjtools
T - list - public static <E> List<E> union(List<? extends E> list1, List<? extends E> list2)
对比Apache Common Collection4 ListUtils, 优化了初始大小
copy from vjtools
E - list1 - list2 - public static <T> List<T> intersection(List<? extends T> list1, List<? extends T> list2)
copy from Apache Common Collection4 ListUtils,但其做了不合理的去重,因此重新改为性能较低但不去重的版本
与List.retainAll()相比,考虑了的List中相同元素出现的次数, 如"a"在list1出现两次,而在list2中只出现一次,则交集里会保留一个"a".
copy from vjtools
T - list1 - list2 - public static <T> List<T> difference(List<? extends T> list1, List<? extends T> list2)
与List.removeAll()相比,会计算元素出现的次数,如"a"在list1出现两次,而在list2中只出现一次,则差集里会保留一个"a".
copy from vjtools
T - list1 - list2 - Copyright © 2020. All rights reserved.