58- LinkedHashMap

LinkedHashMap 的底层实现是基于散列表(哈希表)和双向链表的结合。

与普通的 HashMap 不同,LinkedHashMap 会维护插入元素的顺序,因此可以按照插入顺序或者访问顺序遍历元素。

一、LinkedHashMap 特点

LinkedHashMap 继承自 HashMap 类,并实现了 Map 接口和 LinkedHashMap 特有的接口。

  1. 保持插入顺序:LinkedHashMap 会按照插入元素的顺序来迭代元素。这个顺序可以通过构造函数参数来指定是插入顺序还是访问顺序。默认情况下,LinkedHashMap 使用插入顺序。
  2. 访问顺序:使用 accessOrder 参数为 true 构造一个 LinkedHashMap,可以启用访问顺序。当通过键进行访问(例如调用 get() 方法)或者通过迭代器进行遍历时,被访问的元素会被移到链表的末尾。
  3. 不重复。
  4. 迭代顺序:遍历 LinkedHashMap 的顺序与元素的插入顺序或访问顺序相同,取决于构造函数传入的参数值。
  5. 散列表性能:LinkedHashMap 底层使用散列表存储键值对,具有快速的插入、删除和查找操作。但是,与普通的 HashMap 相比,LinkedHashMap 所需的额外空间略多,因为它要维护链表的结构。

LinkedHashMap 提供了与 HashMap 相同的常见方法,例如 put()、get()、remove()、containsKey() 等。此外,它还提供了一些额外的方法用于控制迭代顺序,如 entrySet() 和 keySet() 方法返回的集合类可以按照插入顺序或访问顺序进行迭代。

import java.util
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值