mysterin's Notes

NO CODE, NO MORE


  • 首页

  • 标签

  • 归档

Hashtable 详解一

发表于 2018-04-26

本文代码来自JDK8

Hashtable 和 HashMap 十分类似, 它是继承 Dictionary, 这个类已经不推荐使用了. 下面列举几点 Hashtable 与 HashMap 的不同之处.

阅读全文 »

TreeMap 详解四

发表于 2018-04-25

遍历

TreeMap 使用中序遍历, 遍历的方式与 HashMap, LinkedHashMap 相同, 通过 entrySet().iterator() 方法返回 Iterator 实例遍历.

阅读全文 »

TreeMap 详解三

发表于 2018-04-25

读取节点比较简单, 只是一个遍历过程而已.

阅读全文 »

TreeMap 详解二

发表于 2018-04-25

TreeMap 插入 key-value 同样是用 put 方法

阅读全文 »

TreeMap 详解一

发表于 2018-04-25

本文代码来自JDK8

  1. TreeMap 继承于 AbstractMap, 并不是继承 HashMap, 它跟 HashMap 是同级;
  2. TreeMap 直接使用红黑树来保存节点;
    阅读全文 »

LinkedHashMap 详解三

发表于 2018-04-23

LinkedHashMap 的遍历方式和 HashMap 的一样, 都是通过 entrySet 方法返回 Set 实例, 然后通过 iterator 方法返回迭代器进行遍历.

阅读全文 »

LinkedHashMap 详解二

发表于 2018-04-23

put

LinkedHashMap 的 put 方法也是使用 HashMap 的方法, 不同在于重写了 newNode(), afterNodeAccess 和 afterNodeInsertion 这几个方法, 这几个方法的调用可以看 HashMap-详解四, 下面具体讲讲如何重写这几个方法.

阅读全文 »

LinkedHashMap 详解一

发表于 2018-04-23

本文代码来自JDK8

性质

  1. LinkedHashMap 继承于 HashMap, 具备 HashMap 的一切性质;
  2. LinkedHashMap 会按先后插入顺序对元素排序遍历;
  3. LinkedHashMap 会额外使用双向链表结构来表示插入的元素.
    阅读全文 »

HashMap 详解七

发表于 2018-04-23

使用 Iterator 遍历

通过 HashMap.entrySet().iterator() 方法获取迭代器, 使用 next 方法对 HashMap 进行遍历.

阅读全文 »

HashMap 详解六

发表于 2018-03-21

链表转树结构

根据详解四, 当链表长度大于 8 时, 为了更高效的查询, 需要转成红黑树结构, 使用的方法是 treeifyBin. 过程是先把链表结构调整为双向链表结构, 再把双向链表结构调整为红黑树结构.

阅读全文 »
123

mysterin

mysterin

25 日志
29 标签
© 2020 mysterin
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4