美文网首页
Java HashMap VS LinkHashMap

Java HashMap VS LinkHashMap

作者: yangbug | 来源:发表于2018-04-22 19:04 被阅读0次

    最新在梳理Java,顺便分享记录下,供大家参考。从以下几个地方对比阐述两个类的异同。

    存储结构

    HashMap

    HashTable

    说明:table 是一个entery列表,其中第i的位置存储所有hash之后index为i的entry,相同index的entr用链表存储。

    LinkHashMap

    LinkHashMap

    相对HashMap,LinkHashMap多了一个双向队列,新添加entry首先按照HashMap的方式存储在table中,同时会将entry加入队列的队尾。

    遍历方式

    HashMap

    HashMap遍历方式

    由以上代码可以看出HashMap是一个“深度优先”的遍历方式,按照index顺序,优先遍历每个index对应的entry链。那么我们很容易得出,entry遍历输出的顺序不是存储的顺序。

    LinkHashMap

    LinkHashMap遍历方式

    LinkHashMap遍历方式是按照双向队列的顺序遍历整个entry链。由此可见entry遍历的顺序是存储的顺序。

    总结一下:

    1. LinkHashMap 比 HashMap多一个双向队列,用于存储遍历。

    2. Hash输出是无序的,LinkHashMap输出则是有序的。

    相关文章

      网友评论

          本文标题:Java HashMap VS LinkHashMap

          本文链接:https://www.haomeiwen.com/subject/zkrclftx.html