HashMap是什么?HashMap 和 LinkedHashMap 是 Map 的常见实现。HashMap 和 LinkedHashMap 的主要区别在于 LinkedHashMap 维护了键的插入顺序,即键插入到 LinkedHashMap 中的顺序,而 HashMap 不维护任何键的顺序。
在这篇文章中,我们将通过示例分享 HashMap 和 LinkedHashMap 之间的异同。
1.插入顺序: HashMap不维护顺序,而LinkedHashMap维护java中元素的插入顺序。
2. 内存:HashMap 和 LinkedHashMap 的第二个区别是内存。由于排序特性,LinkedHashMap 比 HashMap 需要更多的内存。内部 LinkedHashMap 使用双向链表来维护元素的顺序。
3.继承: LinkedHashMap扩展了HashMap,实现了Map接口,HashMap实现了Map接口。
1. HashMap 和LinkedHashMap 返回的迭代器本质上都是fail-fast。
2. HashMap和LinkedHashMap在性能上都差不多。
3. LinkedHashMap 和 HashMap 不同步,如果在没有适当同步的情况下在多个线程之间共享,则会受到竞争条件的影响。
1. 重新输入一个值不会改变 LinkedHashMap 的插入顺序。例如,
如果您已经有一个键并且您想使用 put(key, newValue) 更新它的值,则 LinkedHashMap 的插入顺序将保持不变。
2. LRU(最近最少使用)缓存可以通过使用LinkedHashMap来创建。由于在 LRU 缓存中,最旧的未访问条目被删除,它是 LinkedHashMap 维护的双向链表的头部。
3、LinkedHashMap的迭代器以插入顺序或访问顺序返回元素。
4. 有一个名为 removeEldestEntry() 的受保护方法,其默认实现返回 false。如果该方法被覆盖,则在添加新条目时,实现可以返回 true 以删除最旧的条目。
这就是java中HashMap和LinkedHashMap之间的区别。如果大家想了解更多相关知识,不妨来关注一下极悦的Java极悦在线学习,里面的课程内容细致全面,由浅到深,从入门到精通,很适合没有基础的小伙伴学习,希望对大家能够有所帮助哦。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习