HashMap、LinkedHashMap、TreeMap对比

LinkedHashMap与HashMap底层存储结构的区别:

  • LinkedHashMap 存储结构和 HashMap 相同,依然是数组+链表+红黑树
  • LinkedHashMap 额外持有一个双向链表,维护插入节点的顺序
  • 最终的数据结构如下图
    • 实际的元素存储与HashMap一致,依然是数组+链表+红黑树的形式
    • 区别在于:
      • 除了维护数组+链表的结构之外,还根据插入Map先后顺序维护了一个双向链表的头尾head,tail
      • Node基本结构,相比较HashMap而言,还增加了 before,after 两个分别指向双向链表中前后节点的属性
      • 即下图中的双向链表中的节点,其实值依然是下面的数组+链表结构中的元素HashMap、LinkedHashMap、TreeMap对比_第1张图片

TreeMap:

  1. TreeMap存储K-V键值对,通过红黑树(R-B tree)实现;
  2. TreeMap继承了NavigableMap接口,NavigableMap接口继承了SortedMap接口,可支持一系列的导航定位以及导航操作的方法,当然只是提供了接口,需要TreeMap自己去实现;
  3. TreeMap实现了Cloneable接口,可被克隆,实现了Serializable接口,可序列化&#x

你可能感兴趣的:(java)