1. 首页>财经 > 财经

hashmap原理及扩容(hashmap原理)

作者:马同
2023年05月23日 11:35
财经

你们好,最近小元发现有诸多的小伙伴们对于hashmap原理及扩容,hashmap原理这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、 哈希表的存储原理:

2、 我们知道,哈希表的存储使用数组和链表。传入键值对数据时,系统先取出键值,用hash函数将其转换成hash值,然后用hash法(这里用除法hash法取余数)得到下标索引;需要存储在数组中。

3、 得到数组下标后,我们可以将键值一起存储在数组中。

4、 当index用于存储键值对时,如果这个下标已经有数据,那么两个hash值是否相同将通过equals方法进行比较。如果相等,则比较两个键值对是否相等。如果不是,在这个下标位置,以链表的形式,

5、 将新存储的数据放在头中;如果它们相等,则为原始值;将被覆盖;

6、 哈希表的查询原理;

7、 和在存储中一样,键值首先通过哈希函数转换成指向内存地址的哈希值;

8、 通过equals方法,比较哈希值找到对应的内存地址,再通过内存地址找到对应的链表。此时通过equals方法,比较键值是否相等。如果是,取出键-值对来返回数据。如果不是,

9、 继续往下看列表对比。

10、 总结:

11、 哈希表通过传入的键值对引用一个连续的存储空间(数组存储),将键值对存储在数组中;对于指向相同存储空间的散列值,

12、 然后以链表方式存储;这样,hashmap不仅具有快速数据查询的特点,还具有方便插入和删除链表的特点。因此,hashMap对于数据存储查询具有非常好的特性;

以上就是hashmap原理这篇文章的一些介绍,希望对大家有所帮助。

推荐阅读