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

  • 相关阅读:
    linux下载和解压命令
    检测是否存在post类型的注入
    snort的学习
    解决ERROR: D:Snortetcsnort.conf(511) Unknown preprocessor: "sip". Fatal Error, Quitting..
    代理服务器
    Settimer及回调函数的用法
    vm安装ubantu的详细过程(转载)
    linux 常用指令汇总
    linux 用户及文件权限管理
    linux 基础知识
  • 原文地址:https://www.cnblogs.com/1ssqq1lxr/p/9480468.html
Copyright © 2020-2023  润新知