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

  • 相关阅读:
    elipse图标注解
    Thrift源码解析--transport
    IDL和生成代码分析
    thrift概述
    less分页阅读
    this与super使用总结(java)
    more分页阅读
    Arrays
    Teigha克隆db的blockTableRecord里面的一个实体
    Teigha的BlockTableRecord获取方法
  • 原文地址:https://www.cnblogs.com/1ssqq1lxr/p/9480468.html
Copyright © 2011-2022 走看看