• java源码LinkedHashMap类设计


    LinkedHashMap 继承于 hashMap  

    LinkedHashMap .Entry 继承 HashMap.Node 继承 Map.Entry类 

    LinkedHashMap .Entry 该Entry除了保存当前对象的引用外,还保存了其上一个元素before和下一个元素after的引用,从而在哈希表的基础上又构成了双向链接列表。仍然保留next属性,所以既可像HashMap一样快速查找,用next获取该链表下一个Entry,也可以通过双向链接,通过after完成所有数据的有序迭代

    accessOrder字段定义顺序生成  accessOrder=true时访问顺序排序,否则按插入顺序排序 默认false

    HashMap 预留的空实现

    afterNodeAccess 当节点已存在 修改节点值得时候 调用LinkedHashMap中afterNodeAcces()方法替换 如果时访问顺序得话 则将当前节点移到最后 

    afterNodeInsertion 方法再LinkedHashMap中默认不起作用

     

    当是put操作是  LinkedHashMap重写了newNode()方法  把当前插入节点放在链边tail节点上(末尾)

    当get操作时  LinkedHashMap重写了get(Object key)方法 如何是访问顺序获取后则把当前节点放到末尾  如果是插入顺序则不做操作

  • 相关阅读:
    中国大陆地区用户请特别注意:请勿存放违反当地法律法规文件
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
    JAVA日报
  • 原文地址:https://www.cnblogs.com/1ssqq1lxr/p/9480468.html
Copyright © 2020-2023  润新知