# Map

# HashTable

# 特性

  • 线程安全, 其方法全都用 synchronized 修饰

  • 不建议使用

  • 不可进行排序, 通过数组和链表/红黑树实现

    当某个位桶的链表长度不小于 8 时, 会被调整为红黑树

# TreeMap

  • 可进行排序,
  • 其底层是通过红黑树实现的

为什么没有 ConcurrentTreeMap ? 通过 CAS 实现红黑树的排序锁太过于复杂, 所以有了 ConcurrentSkipListMap

# ConcurrentHashMap

  • 线程安全, 通过 CAS 锁机制
  • 插入效率较 HashTable 慢(在插入时, 经过了多重检查), 但读的效率要高很多

# ConcurrentSkipListMap

  • 线程安全
  • 可进行排序, 通过跳表实现

image-20201104174455727

上次更新时间: 2020/11/4 下午7:19:24