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