Java集合与并发集合

画一下Java的集合collectionjava.util和并发集合java.util.concurrent的关系,

Java集合与并发集合_第1张图片
jc_and_juc

scala 非并发

Java集合与并发集合_第2张图片
不可变序列
Java集合与并发集合_第3张图片
可变序列

scala 并发

Java集合与并发集合_第4张图片
scala并发集合

java

Java集合与并发集合_第5张图片
java集合

detail

Type Class Description
List ArrayList 数组,System.arraycopy
LinkedList 链表,node指向下一个node,如此循环,无容量限制
CopyOnWriteArrayList 数组,ReentrantLock(可重入,中断,限时,公平)
Map HashMap 数组,Node[] table
LinkedHashMap 链表,号称是最占内存的数据结构,newNode
TreeMap 链表,RBT,sort,Entry
ConcurrentHashMap 数组,Node[],CAS+synchronized
ConcurrentSkipListMap 链表,CAS
Set HashSet
LinkedHashSet
TreeSet
ConcurrentSkipListSet
CopyOnWriteArraySet
Queue LinkedList 双向链表
ArrayDeque 数组,双向,head改变即可
PriorityQueue 数组,比较器
ConcurrentLinkedQueue 单向链表,CAS
BlockingQueue ArrayBlockingQueue 数组,ReentrantLock
LinkedBlockingQueue 单向链表,put+take ReentrantLock
PriorityBlockingQueue 数组,ReentrantLock
SynchronousQueue 链表,transfer,CAS
Collections
Arrays

Reference

  • Java 集合系列目录
  • Java多线程系列目录的JUC集合
  • scala容器类性能特点
  • java集合类性能比较
  • Java集合小抄

你可能感兴趣的:(Java集合与并发集合)