[TOC]
通用算法
改变元素顺序
1 | void reverse(List<?> list) |
改变元素内容
1 | <T> void copy(List<? super T> dest, List<? extends T> src) |
在集合中找到极值
1 | <T extends Object & Comparable<? super T>> |
在集合中找到特殊的元素
1 | <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) |
集合工厂
返回空值,不可修改(用于查询的时候返回空值用)
1 | <T> List<T> emptyList() // return the empty list (immutable) |
返回一个不可修改的单例
1 | <T> Set<T> singleton(T o) |
放回n个给定对象的引用(因为都是引用,所以节约空间)
1 | <T> List<T> nCopies(int n, T o) |
包装
Synchoronized Collections
用于少量同步
1 | <T> Collection<T> synchronizedCollection(Collection<T> c); |
Unmodifiable Collections
用于传递视图、通知等
1 | <T> Collection<T> unmodifiableCollection(Collection<? extends T> c) |
Checked Collections
用于和老代码交互时,操作集合需要检查类型(1.5前没泛型)
1 | static <E> Collection |
其他方法
参考:http://gitbook.net/java/util/java_util_collections.html
addAll
这个方法会将所有指定的元素到指定的集合
1 | <T> boolean addAll(Collection<? super T> c, T... elements) |
asLifoQueue
此方法返回一个deque的视图,作为一个后进先出(LIFO)队列
1 | <T> Queue<T> asLifoQueue(Deque<T> deque) |
disjoint
如果两个指定collection中没有相同的元素此方法返回true
1 | boolean disjoint(Collection<?> c1, Collection<?> c2) |
enumeration
此方法返回一个枚举在指定的collection
1 | <T> Enumeration<T> enumeration(Collection<T> c) |
frequency
此方法返回指定元素集合等于指定对象的数量。
1 | int frequency(Collection<?> c, Object o) |
list
用于老类型转新类型
1 | <T> ArrayList<T> list(Enumeration<T> e) |
用法:
1 |
|
newSetFromMap
通过map创建set
1 | <E> Set<E> newSetFromMap(Map<E, Boolean> map) |
reverseOrder
1 | <T> Comparator<T> reverseOrder() |
用法例子:
1 | SortedSet<Integer> s = new TreeSet<Integer>(Collections.reverseOrder()); |