美文网首页
基于HashMap的LinkedHashMap

基于HashMap的LinkedHashMap

作者: 柳蒿 | 来源:发表于2019-09-29 16:16 被阅读0次

    LinkedHashMap继承了HashMap,具有hashMap的所有特性。

    • 在插入数据时,LinkedHashMap会执行HashMap插入数据时所有的操作,除此之外,LinkedHashMap还会把新的数据加入到内部的双向链表上。
      • LinkedHashMap在遍历所有的元素的时候只需要遍历内部的双向链表。而Hashmap则需要遍历每一个桶(bucket)及桶中的元素,如果数据量比较少,则在这个过程中会扫描到许多空的桶,结果就是HashMap遍历的效率比LinkedHashMap低。
      • accessOrder是是否按顺序访问的标志。
        accessOrder=false,按照节点插入的顺序遍历。
        accessOrder=true,按照节点访问顺序遍历。被访问的节点会被移动到双链表的末尾,可以在此基础上构建一个LRUCache。

    accessOrder=true时LRUCache的构建思路。
    在这种情况下,被访问的节点会被移动到双链表的末尾,位于链表首端的就是最久未被使用的节点。删除节点时,只需要删除链表首端的节点即可。

    相关文章

      网友评论

          本文标题:基于HashMap的LinkedHashMap

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