java集合类小记

分类 实现 线程安全 排序 特点
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 插入顺序 阻塞,无界
posted @ 2020-02-20 10:26  ukyo--碳水化合物  阅读(116)  评论(0)    收藏  举报