一、集合
(1)集合接口
Collection
-List
-Queue
-Set
Map
(2)Collections工具类
- binarySearch
- sort
- reverse
- max
- min
- shuffle
- fill
- copy
- synchronizedXXX
二、List
(1)ArrayList 默认容量为10,1.5倍增长,线程不安全
(2)LinkedList 双向链表实现,线程不安全
(3)CopyAndWriteArrayList 线程安全,通过复制数据达到最终的同步,不能确保同时同步,高性能的读,写操作性能低
(4)Vector 默认容量为10,2倍增长,线程安全,性能低,在所有方法上加synchronized
(5)Stack 线程安全,继承Vector
三、Queue
(1)LinkedList 双向链表实现,线程不安全
(2)PriorityQueue 优先队列,默认返回最小值,使用小顶堆排序,可以设置Comparator比较器,不允许null值
(3)PriorityBlockingQueue 线程安全,阻塞队列,不允许null值
(4)ArrayBlockingQueue 容量不可改变的,线程安全的阻塞队列,不允许null值
(5)LinkedBlockingQueue 自动增长的链表,线程安全的阻塞队列,不允许null值
(6)SynchronousQueue 单个容量且线程安全的阻塞队列,不允许null值
(7)LinkedBlockingDeque 双向链表,线程安全的阻塞队列,不允许null值
(8)ConcurrentLinkedQueue CAS算法线程非阻塞同步,不允许null值
(9)ConcurrentLinkedDeque 双向队列,CAS算法线程非阻塞同步,不允许null值
四、Set
(1)HashSet 内部使用HashMap的key,线程不安全
(2) LinkedHashSet 线程不安全,继承自HashSet,维护一个双向链接列表,迭代顺序可为插入顺序或是访问顺序。
(3)TreeSet 线程不安全,有序排序的集,实现NavigableSet,SortedSet接口,内部使用TreeMap的key ,不允许null值
(4)EnumSet 线程不安全,一个abstract枚举集,由它子类实现。noneOf(EnumClass)获取枚举Set的子类
(5)CopyOnWriteArraySet 线程安全的,内部使用CopyOnWriteArrayList存储,读效率高,写效率低
(6)ConcurrentSkipListSet 线程安全的,实现NavigableSet,SortedSet接口,内部使用ConcurrentSkipListMap存储,不允许null值
五、Map
(1)HashMap 线程不安全,key与value运行为null,效率高
(2)LinkedHashMap 继承HashMap,维护的是一个按顺序存放的双向链表,作为迭代器遍历。
(3)WeakHashMap 继承HashMap,弱引用key,没有外部引用被gc回收
(4)ConcurrentHashMap JDK1.7版本的ReentrantLock+Segment+HashEntry到JDK1.8版本中synchronized+CAS+HashEntry+红黑树,分段锁线程同步,key和value都不允许为null,方法get,clear,iterator 都是弱一致性的
(5)ConcurrentSkipListMap CAS算法线程同步,key和value都不允许为null
(6)Hashtable synchronized方法线程同步,key和value都不允许为null,效率低
(7)EnumMap 枚举Map,线程不安全,key不允许null,value可以为null
(8)TreeMap 线程不安全的有序的排序Map,实现NavigableMap,SortedMap接口,key不可以为null,value可以为null
(9)Properties 继承hashtable,线程同步,使用synchronized方法
六、总结
(1)hash hashcode
- HashMap
- LinkedHashMap
- WeakHashMap
- ConcurrrentHashMap
- Hashtable
- HashSet
- LinkedHashSet
(2)concurrent
ConcurrentLinkedQueue
ConcurrentLinkedDeque
ConcurrentHashMap
ConcurrentSkipListMap
ConcurrentSkipListSet
不允许有null值存在
(3)CopyAndWrite COW
CopyAndWriteArrayList
CopyAndWriteArraySet