分类 | 实现 | 线程安全 | 排序 | 特点 |
List | ArrayList | X | 插入顺序 | 随机访问性能高 |
LinkedList | X | 插入顺序 | 随机访问性能低,头/尾操作性能高,不占用冗余空间 | |
Vector | √ | 插入顺序 | 并发性能不高,线程越多性能越差 | |
CopyOnWriteArrayList | √ | 插入顺序 | 并发读性能高,占用冗余内存空间 | |
Map | HashMap | X | 无序 | 读写性能高,接近于O(1) |
LinkedHashMap | X | 插入顺序 | 可按插入顺序遍历,性能与HashMap接近 | |
HashTable | √ | 无序 | 并发性能不高,线程越多性能越差 | |
ConcurrentHashMap | √ | 无序 | 并发性能比HashTable高 | |
TreeMap | X | key升序或降序 | 有序,读写性能O(logN) | |
ConcurrentSkipListMap | √ | key升序或降序 | 线程安全,性能与并发数无关,内存空间占用较大 | |
Set | HashSet | X | 无序 | 同HashMap(读写性能高,接近于O(1)) |
LinkedHashSet | X | 插入顺序 | 同LinkedHashMap(可按插入顺序遍历,性能与HashMap接近) | |
TreeSet | X | 对象升序或降序 | 同TreeMap(有序,读写性能O(logN)) | |
ConcurrentSkipListSet | X | 无序 | 同ConcurrentSkipListMap | |
Queue | ConcurrentLinkedQueue | √ | 插入顺序 | 非阻塞 |
LinkedBlockingQueue | √ | 插入顺序 | 阻塞,无界 | |
ArrayBlockingQueue | √ | 插入顺序 | 阻塞,有界 | |
SynchronousQueue | √ | * | 不存储任何元素,向其中插入元素的线程会阻塞,直到有另一个线程将这个元素取走,反之亦然 | |
PriorityQueue | X | 对象自然序或自定义排序 | 根据元素的优先级进行排序,保证自然序或自定义序最小的对象最先出队 | |
Deque | ConcurrentLinkedDeque | √ | 插入顺序 | 非阻塞 |
LinkedBlockingDeque | √ | 插入顺序 | 阻塞,无界 |
原文:https://www.cnblogs.com/ukzq/p/12334611.html