java源码-LinkedHashMap类设计
2024-10-07 00:20:41
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)方法 如何是访问顺序获取后则把当前节点放到末尾 如果是插入顺序则不做操作
最新文章
- 删除顽固node_modules
- 关于orapwd命令entries参数的探究
- Mybatis批量添加对象List
- Python中的sort()方法使用基础
- 解决maven的“Dynamic Web Module 3.0 requires Java 1.6 or newer.”错误
- 在 VS14 上安装 Visual F# Power Tools
- Tomcat默认打开项目设置
- 数组Api .map()的使用
- PHP的优点
- VS快捷方式小技巧
- JavaScript插件——模态框
- oracle中触发器的讲解
- Nlpir Parser灵玖文本语义挖掘系统数据采集
- 翻译:MariaDB字符集和排序规则
- 【java】内存流:java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream、java.io.CharArrayReader、java.io.CharArrayWriter
- Windows10 VS2017 C++编译Linux程序
- 10个常见的JavaScript BUG
- centos 上不了网了
- python的类中为什么要引入self
- Python while 循环使用实例