zoukankan      html  css  js  c++  java
  • 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)方法 如何是访问顺序获取后则把当前节点放到末尾  如果是插入顺序则不做操作

  • 相关阅读:
    语句
    1101 事务存储引擎触发器函数
    1029 作业
    1029 数据库表以及行的基本操作
    1023 笔记
    1022 作业
    1022 笔记
    1021 笔记
    查看pip已经安装过的包
    查看Python支持的.whl文件版本
  • 原文地址:https://www.cnblogs.com/1ssqq1lxr/p/9480468.html
Copyright © 2011-2022 走看看