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等等。
时间: 2024-08-27 04:45:53