有序的Map集合--LinkedHashMap

2023-05-16

由于map集合时无序的,我们接触到最多的集合中只有List集合时有序的.通过查了查,发现有一种map(LinkedHashMap)集合时有序的,可以做到按照用户放入集合的顺序取出集合中的元素.

LinkedHashMap介绍:

简单的介绍一下。通过LinkedHashMap这个名字可以看出来这是个链表和哈希表的结合,链表是有顺序的,哈希表通常说是散列表,通过计算键的哈希值,用这个哈希值映射到表结构中,LinkedHashMap允许存储null值,基本的和HashMap一致,通过键找到值,键不可以重复,值可以重复。下图是LinkedHashMap的继承关系,继承于HashMap,所以基本的方法都是一致的。

LinkedHashMap的实现:

底层和HashMap一致,用哈希表实现,区别是LinkedHashMap还使用了一个双向链表实现顺序存取,这个双向链表的实现依赖于Entry这个内部类,这个Entry内部类在集合中非常常见。通过查看Entry类中的方法实现也可以看出.

在删除和增加时,都在修改前面的引用和后面的引用。

在HashMap中只是利用了哈希表,而LinkedHashMap中还用到了链表记录顺序,在LinkedHashMap中并没有put方法,而是利用了HashMap中的put方法,但是重写了put方法中调用的的addEntry()方法.

 

通过上面方法的分析,可以看出在添加节点的时候(由于是双向链表)都会在尾部进行添加。

 转载于:https://blog.csdn.net/qq_38663729/article/details/78479786

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有序的Map集合--LinkedHashMap 的相关文章

随机推荐

  • Ubuntu:如何显示系统托盘图标(systray)

    1 问题说明 Ubuntu 11版本开始 xff0c 默认关闭了托盘图标的显示 xff0c 需要手动执行命令或额外工具配置 xff0c 添加到白名单 Ubuntu 13 04更彻底 xff0c 默认配置根本没有托盘图标 xff0c 除了ja
  • 火锅店连锁企业使用哪款生鲜管理系统软件比较好呢?

    到目前为止 xff0c 餐饮行业的发展越来越好 xff0c 不管是节假日还是平常的日子里 xff0c 基本上餐馆总是会有很多人 xff0c 相比较来说连锁店铺的管理对于一般店铺来说更加的繁琐 xff0c 那是因为大多数的商品都是由总部统一配
  • 2021-10-26OriginPro 2021 v9.8如何修改为中文

    OriginPro 2021 v9 8如何修改为中文 xff1f 知乎 zhihu com https zhuanlan zhihu com p 376311895 按照这个方法亲测有效
  • Android 启动模式singleTask和onNewIntent什么时候调用

    设置启动模式我们不仅可以节省内存的使用 xff0c 还能达到更好的体验 如果IntentActivity处于任务栈的顶端 xff0c 也就是说之前打开过的Activity xff0c 现在处于 onPause onStop 状态的话 其他应
  • Centos7里在gnome桌面创建文件夹快捷方式

    需求 我的home文件夹特别小 xff0c 空间都分配在 data里 xff0c 所以我平常都是到 data路径下 所以我想在桌面上放一个可以直接到 data路径下的快捷键 STEP1 首先是到一个合适的地方 我放在了 data syste
  • 硬盘被格式化重装系统,以前的文件还能恢复吗

    硬盘被格式化重装系统 以前的文件还能恢复吗 今天早上起来就发现电脑有点问题 xff0c 一直提示我有中毒的迹象 xff0c 但是杀毒软件却一直提示我没有问题 xff0c 不知道是不是病毒太过新颖 xff0c 还是免费的杀毒软件不够好用 一阵
  • 聊聊mac系统的 secoclient和iTerm2

    secoclient是啥 xff0c 就是华为出品的VPN网络设置工具 可以连接其他公司的服务器 下载地址 xff1a https secoclient updatestar com 网上百度secoclient下载 xff0c 有很多 x
  • Android Selinux介绍,如何添加selinux 权限

    Selinux简介 SELinux是安全增强型 Linux xff08 Security Enhanced Linux xff09 简称 SELinux 它是一个 Linux 内核模块 xff0c 也是 Linux 的一个安全子系统 优势
  • android 启动app event log

    pid 951 为system server 进程 1 冷启动 Time pid TAG Messag 01 20 33 418 951 wm stack created 22 01 20 33 421 951 wm task create
  • ASP.NET 实现主题切换实例

    通常我们经常看到网页 xff0c 一些软件提供换肤功能 xff0c 各种主题间切换 ASP NET 2 0 中可以用Theme和skin以及CSS轻松实现这个功能 首先简单介绍一下三种技术 xff1a 主题 xff08 Theme xff0
  • MacBook远程控制工具VNC Viewer_亲测使用

    MacBook远程控制工具VNC Viewer 亲测使用 官方下载地址 https www realvnc com en connect download viewer MacBook远程桌面Windows使用Microsoft Remot
  • Android注解(annotation)介绍及其应用

    我的新书 Android App开发入门与实战 已于2020年8月由人民邮电出版社出版 xff0c 欢迎购买 点击进入详情 文章目录 介绍自定义注解注解的应用 xff1a 反射注解的应用 xff1a APT其它 介绍 Annotation
  • Maven配置本地仓库 Maven项目使用本地仓库

    Maven配置本地仓库 Maven项目使用本地仓库 项目部署或开发环境没有外网的情况下 需要配置本地仓库 由于是在内网环境 xff0c maven无法连接互联网 xff0c 所以只能事先将jar下载到本地 xff0c 然后通过配置pom文件
  • Shell脚本

    做 Java 的肯定都接触过 Linux 系统 xff0c 那么很多时候我们在开发的过程中都是把我们项目打成一个jar包 xff0c 或者是war包的形式 xff0c 然后通过 XFTP 上传到我们服务器的指定目录 xff0c 然后运行一端
  • Android开发工具——ADB(Android Debug Bridge) <三>DalvikVM之jdwp线程

    jdwp java debug wire protocol 是dalvik VM的一个线程 xff0c 可以建立在adb或者tcp基础上 xff0c 与DDMS或debugger进行通信 代码位置 dalvik vm jdwp framew
  • Python if else语句用法规范(注意事项)

    在使用 if elif else 条件语句时 xff0c 需要初学者根据实际应用场景 xff0c 自行设计表达式和代码块 xff0c 而在这两部分中 xff0c 有些细节需要初学者注意 1 代码块不要忘记缩进 代码块一定要缩进 xff0c
  • Android源码编译失败,没有具体错误信息

    错误现象 编译Android源码 xff0c 时不时就会编译不过 xff0c 而且没有具体的报错信息 xff0c error log soong log中没有任何具体的错误信息 xff0c 和make时打印出来的信息一样 参见下图 此时 x
  • Android源码(AOSP)中C/C++常用库和头文件位置

    Android中间层或底层开发中 xff0c 有很多是natvie开发的 xff0c 需要使用native的库 这里整理了AOSP中native库和头文件分散的几个主要位置 以供参考 以下目录都是以aosp源码作为根目录 xff0c 显示的
  • [Android AIDL系列 2] Android源码中编译.aidl文件

    先准备aidl文件 xff0c 文件目录结果如下 aidl文件内容 xff0c 参见 xff1a Android AIDL系列 1 xff1a 手动编译aidl文件 xff0c 生成Java C 43 43 android C 43 43
  • 有序的Map集合--LinkedHashMap

    由于map集合时无序的 xff0c 我们接触到最多的集合中只有List集合时有序的 通过查了查 xff0c 发现有一种map xff08 LinkedHashMap xff09 集合时有序的 xff0c 可以做到按照用户放入集合的顺序取出集