首页 > 其他 > 详细

谈一下HashMap的底层原理是什么?

时间:2021-02-22 15:16:36      阅读:41      评论:0      收藏:0      [点我收藏+]

底层原理:Map + 无序 + 键唯一 + 哈希表 (数组+Entry)+ 存取值

1、HashMap是Map接口的实现类。实现HashMap对数据的操作,允许有一个null键,多个null值。

2、是无序的集合,LinkedHashMap是有序的集合

3、哈希表结构可以保证键唯一

4、HashMap底层就是一个哈希表结构,数组+链表或数组+红黑树(链表超过8个就用红黑树)。新建一个HashMap的时候,就会初始化一个数组,数组的初始容量为16,数组中的每一项又是一个链表,Entry就是数组中的元素,每个Entry其实就是一个key-value的键值对,它持有一个指向下一个元素的引用next,这就构成了链表。先把元素按照相同的hash值进行分组,再把相同哈希值的元素挂到一起。

技术分享图片

5、hash算法决定在数组中的位置,equals方法决定在链表中的位置。当需要存储一个Entry对象时,会根据hash算法来决定在其数组中的位置,在根据equals方法决定其在该数组位置上的链表中的存储位置;当需要取出一个Entry对象时,也会根据hash算法找到其在数组中的存储位置, 在根据equals方法从该位置上的链表中取出Entry。

谈一下HashMap的底层原理是什么?

原文:https://www.cnblogs.com/zwh0910/p/14354308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!