博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java基础LinkedHashMap原理
阅读量:6070 次
发布时间:2019-06-20

本文共 422 字,大约阅读时间需要 1 分钟。

详情见这里先记录一下基本原理。

在LinkedHashMapMap中,所有put进来的Entry都保存在如下面第一个图所示的哈希表中,但由于它又额外定义了一个以head为头结点的双向链表(如下面第二个图所示),因此对于每次put进来Entry,除了将其保存到哈希表中对应的位置上之外,还会将其插入到双向链表的尾部。

更直观地,下图很好地还原了LinkedHashMap的原貌:HashMap和双向链表的密切配合和分工合作造就了LinkedHashMap。特别需要注意的是,next用于维护HashMap各个桶中的Entry链,before、after用于维护LinkedHashMap的双向链表,虽然它们的作用对象都是Entry,但是各自分离,是两码事儿。

其中,HashMap与LinkedHashMap的Entry结构示意图如下图所示:

转载于:https://juejin.im/post/5a6f3c4af265da3e3c6c6ca5

你可能感兴趣的文章
LeetCode283. Move ZeroesC语言
查看>>
Loadrunner进行md5加密方法
查看>>
Essential Grid for ASP.NET MVC
查看>>
Mobiscroll 三级联动地区选择
查看>>
使用kubeadm部署k8s集群00-缓存gcr.io镜像
查看>>
策略模式Strategy (分离算法,选择实现)
查看>>
Server 2012私有云之高可用——”瑞友杯”虚拟化征文
查看>>
django新建支持中文mysql数据库
查看>>
html之marquee详解
查看>>
十个糟糕的程序员的行为
查看>>
《淘宝技术这十年》笔记 (大图,手机勿入)
查看>>
Java中日期转换问题
查看>>
我的友情链接
查看>>
事件捕获/事件冒泡
查看>>
Android中通过typeface设置字体
查看>>
httpd主配置文档的介绍及小练习
查看>>
Centos 7.1 快速搭建postfix邮件系统
查看>>
学 Win32 汇编[32] - 子程序进阶
查看>>
WinAPI: GetSystemDirectory - 返回 System 文件夹路径
查看>>
C#学习笔记(20140911)-下拉框、日历、pannel控件的使用
查看>>