public class ListUtil extends Object
| Constructor and Description |
|---|
ListUtil() |
| Modifier and Type | Method and Description |
|---|---|
static <T> int |
binarySearch(List<? extends Comparable<? super T>> sortedList,
T key)
二分法快速查找对象, 使用Comparable对象自身的比较.
|
static <T> int |
binarySearch(List<? extends T> sortedList,
T key,
Comparator<? super T> c)
二分法快速查找对象,使用Comparator.
|
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> |
emptyList()
返回一个空的结构特殊的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 boolean |
isEmpty(List<?> list)
判断是否为空.
|
static boolean |
isNotEmpty(List<?> list)
判断是否不为空.
|
static <T> ArrayList<T> |
newArrayList()
Deprecated.
JDK7开始已经简化
|
static <T> ArrayList<T> |
newArrayList(Iterable<T> elements)
根据等号左边的类型,构造类型正确的ArrayList, 并初始化元素.
|
static <T> ArrayList<T> |
newArrayList(T... elements)
根据等号左边的类型,构造类型正确的ArrayList, 并初始化元素.
|
static <T> ArrayList<T> |
newArrayListWithCapacity(int initSize)
根据等号左边的类型,构造类型正确的ArrayList, 并初始化数组大小.
|
static <T> CopyOnWriteArrayList<T> |
newCopyOnWriteArrayList()
Deprecated.
JDK7开始已经简化
|
static <T> CopyOnWriteArrayList<T> |
newCopyOnWriteArrayList(T... elements)
根据等号左边的类型,构造类型转换的CopyOnWriteArrayList, 并初始化元素.
|
static <T> LinkedList<T> |
newLinkedList()
Deprecated.
JDK7开始已经简化
|
static <T> LinkedList<T> |
newLinkedList(Iterable<? extends T> elements)
根据等号左边的类型,构造类型正确的LinkedList.
|
static <T> void |
notNullList(List<T> list)
清理掉List中的Null对象
|
static <T> List<List<T>> |
partition(List<T> list,
int size)
List分页函数
|
static <T> List<T> |
reverse(List<T> list)
返回一个倒转顺序访问的List,仅仅是一个倒序的View,不会实际多生成一个List
|
static void |
shuffle(List<?> list)
随机乱序,使用默认的Random.
|
static void |
shuffle(List<?> list,
Random rnd)
随机乱序,使用传入的Random.
|
static <T> List<T> |
singletonList(T o)
返回只含一个元素但结构特殊的List,节约空间.
|
static <T extends Comparable<? super T>> |
sort(List<T> list)
升序排序, 采用JDK认为最优的排序算法, 使用元素自身的compareTo()方法
|
static <T> void |
sort(List<T> list,
Comparator<? super T> c)
升序排序, 采用JDK认为最优的排序算法, 使用Comparetor.
|
static <T extends Comparable<? super T>> |
sortReverse(List<T> list)
倒序排序, 采用JDK认为最优的排序算法,使用元素自身的compareTo()方法
|
static <T> void |
sortReverse(List<T> list,
Comparator<? super T> c)
倒序排序, 采用JDK认为最优的排序算法, 使用Comparator
|
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, 优化了初始大小
|
static <T> void |
uniqueNotNullList(List<T> list) |
static <T> List<T> |
unmodifiableList(List<? extends T> list)
返回包装后不可修改的List.
|
public static boolean isEmpty(List<?> list)
public static boolean isNotEmpty(List<?> list)
public static <T> T getFirst(List<T> list)
public static <T> T getLast(List<T> list)
@Deprecated public static <T> ArrayList<T> newArrayList()
public static <T> ArrayList<T> newArrayList(T... elements)
Lists.newArrayList(Object...)public static <T> ArrayList<T> newArrayList(Iterable<T> elements)
Lists.newArrayList(Iterable)public static <T> ArrayList<T> newArrayListWithCapacity(int initSize)
Lists.newArrayListWithCapacity(int)@Deprecated public static <T> LinkedList<T> newLinkedList()
public static <T> LinkedList<T> newLinkedList(Iterable<? extends T> elements)
Lists.newLinkedList()@Deprecated public static <T> CopyOnWriteArrayList<T> newCopyOnWriteArrayList()
public static <T> CopyOnWriteArrayList<T> newCopyOnWriteArrayList(T... elements)
public static final <T> List<T> emptyList()
Collections.emptyList()public static <T> List<T> emptyListIfNull(List<T> list)
Collections.emptyList()public static <T> List<T> singletonList(T o)
Collections.singletonList(Object)public static <T> List<T> unmodifiableList(List<? extends T> list)
Collections.unmodifiableList(List)public static <T> List<T> synchronizedList(List<T> list)
public static <T extends Comparable<? super T>> void sort(List<T> list)
Collections.sort(List)public static <T extends Comparable<? super T>> void sortReverse(List<T> list)
Collections.sort(List)public static <T> void sort(List<T> list, Comparator<? super T> c)
Collections.sort(List, Comparator)public static <T> void sortReverse(List<T> list, Comparator<? super T> c)
Collections.sort(List, Comparator)public static <T> int binarySearch(List<? extends Comparable<? super T>> sortedList, T key)
public static <T> int binarySearch(List<? extends T> sortedList, T key, Comparator<? super T> c)
public static void shuffle(List<?> list)
Collections.shuffle(List)public static void shuffle(List<?> list, Random rnd)
Collections.shuffle(List, Random)public static <T> List<T> reverse(List<T> list)
Lists.reverse(List)public static <T> void notNullList(List<T> list)
public static <T> void uniqueNotNullList(List<T> list)
public static <E> List<E> union(List<? extends E> list1, List<? extends E> list2)
public static <T> List<T> intersection(List<? extends T> list1, List<? extends T> list2)
public static <T> List<T> difference(List<? extends T> list1, List<? extends T> list2)
Copyright © 2018. All rights reserved.