Collections 是一个操做 Set、List 和 Map 等集合的工具类。安全
Collections 中提供了一系列静态的方法对集合元素进行排序、查询和修改等操做,还提供了对集合对象设置不可变、对集合对象实现同步控制等方法。多线程
Collections 类中提供了多个 synchronizedXxx() 方法,该方法可以使将指定集合包装成线程同步的集合,从而能够解决多线程并发访问集合时的线程安全问题。并发
static class SynchronizedSet<E> extends SynchronizedCollection<E> implements Set<E> { private static final long serialVersionUID = 487447009682186044L; SynchronizedSet(Set<E> s) { super(s); } SynchronizedSet(Set<E> s, Object mutex) { super(s, mutex); } public boolean equals(Object o) { if (this == o) return true; // 同步代码块,Vector、Hashtable都是同步方法 synchronized (mutex) {return c.equals(o);} } public int hashCode() { // 同步代码块,Vector、Hashtable都是同步方法 synchronized (mutex) {return c.hashCode();} } }
Collections类中的方法有:dom
min()、max()、copy()、sort()、binarySearch()、reverse() —— 反转、shuffle() —— 乱序工具
fill() ——把一个对象填充到list里的每个单元、swap(List,int, int):交换元素this
int frequency(Collection,Object):返回指定集合中指定元素的出现次数spa
boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换 List 对象的全部旧值线程
public static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) { if (list instanceof RandomAccess || list.size()<BINARYSEARCH_THRESHOLD) // 适用于ArrayList return Collections.indexedBinarySearch(list, key); else // 适用于LinkedList return Collections.iteratorBinarySearch(list, key); }