HashMap&Hashtable&LinkedHashMap&ConcurrentHashMap&Collections.synchronizedMap

1、HashMap

  • 是一种哈希散列结构。JDK1.8中,它由数组+单向链表+黑红树构成。
  • 构造函数会创建一个空的HashMap,在插入第一个数据时才会初始化一个数组。
  • 是个快存快取得数据结构,时间复杂度为O(1)
  • 不是线程安全的
  • 允许key和value都为NULL

2、Hashtable

  • 继承的父类与HashMap不同
  • 线程安全的,它的接口方法通过synchronized关键字实现线程安全,所有它任何操作方法都是阻塞的。
  • 不允许key和value为NULL

3、LinkedHashMap

  • 继承HashMap,具有HashMap的所有特点

4、ConcurrentHashMap

  • 继承AbstractMap,数据结构与HashMap相同
  • 以分段锁降低了锁竞争,同时又保证了线程安全

猜你喜欢

转载自www.cnblogs.com/zhi-leaf/p/12820501.html