Collections是JDK针对集合提供的一个工具类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
1、搜索
如可以使用Collections提供的二分查找方法binarySearch()
2、排序
如可以使用Collections.sort()
对List
进行了排序
3、线程安全化
使用Collections.synchronizedXxx();方法可以将集合对象线程安全化,其实现原理是代理。
static <T> List<T> synchronizedList(List<T> list, Object mutex) { return (list instanceof RandomAccess ? new SynchronizedRandomAccessList<T>(list, mutex) : new SynchronizedList<T>(list, mutex)); }
final Object mutex; // Object on which to synchronize
public void add(int index, E element) { synchronized(mutex) {list.add(index, element);} }
如果需要使用线程安全化的集合,考虑到效率问题不建议使用Collections工具类线程安全化非线程安全的集合,而是使用Concurrent Framework中实现的线程安全集合实现,如ConcurrentHashMap,CopyOnWriteArrayList等等。