首页 课程 师资 教程 报名

HashMap和LinkedHashMap的区别示例

  • 2022-03-30 08:37:14
  • 2449次 星辉

HashMap是什么?HashMap 和 LinkedHashMap 是 Map 的常见实现。HashMap 和 LinkedHashMap 的主要区别在于 LinkedHashMap 维护了键的插入顺序,即键插入到 LinkedHashMap 中的顺序,而 HashMap 不维护任何键的顺序。

在这篇文章中,我们将通过示例分享 HashMap 和 LinkedHashMap 之间的异同。

HashMap和LinkedHashMap的区别示例

HashMap和LinkedHashMap的区别

1.插入顺序: HashMap不维护顺序,而LinkedHashMap维护java中元素的插入顺序。

2. 内存:HashMap 和 LinkedHashMap 的第二个区别是内存。由于排序特性,LinkedHashMap 比 HashMap 需要更多的内存。内部 LinkedHashMap 使用双向链表来维护元素的顺序。

3.继承: LinkedHashMap扩展了HashMap,实现了Map接口,HashMap实现了Map接口。

HashMap 和LinkedHashMap 的相似之处

1. HashMap 和LinkedHashMap 返回的迭代器本质上都是fail-fast。

2. HashMap和LinkedHashMap在性能上都差不多。

3. LinkedHashMap 和 HashMap 不同步,如果在没有适当同步的情况下在多个线程之间共享,则会受到竞争条件的影响。

LinkedHashMap 的注意事项

1. 重新输入一个值不会改变 LinkedHashMap 的插入顺序。例如,

如果您已经有一个键并且您想使用 put(key, newValue) 更新它的值,则 LinkedHashMap 的插入顺序将保持不变。

2. LRU(最近最少使用)缓存可以通过使用LinkedHashMap来创建。由于在 LRU 缓存中,最旧的未访问条目被删除,它是 LinkedHashMap 维护的双向链表的头部。

3、LinkedHashMap的迭代器以插入顺序或访问顺序返回元素。

4. 有一个名为 removeEldestEntry() 的受保护方法,其默认实现返回 false。如果该方法被覆盖,则在添加新条目时,实现可以返回 true 以删除最旧的条目。

这就是java中HashMap和LinkedHashMap之间的区别。如果大家想了解更多相关知识,不妨来关注一下星辉的Java星辉在线学习,里面的课程内容细致全面,由浅到深,从入门到精通,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交