2016 - 2024

感恩一路有你

自己实现hashmap HashMap的内部实现机制,Hash是怎样实现的,什么时候ReHash?

浏览量:1420 时间:2021-03-16 08:53:21 作者:admin

HashMap的内部实现机制,Hash是怎样实现的,什么时候ReHash?

此实现假定哈希函数在bucket之间正确地分配元素,这可以为基本操作(get和put)提供稳定的性能。迭代集合视图所需的时间与HashMap实例的“容量”(bucket数)及其大小(键值映射数)成比例。因此,如果迭代性能很重要,不要将初始容量设置得太高(或负载系数太低)。

HashMap实例有两个影响其性能的参数:初始容量和加载因子。容量是哈希表中的存储桶数,初始容量只是创建哈希表时的容量。负载因子是哈希表在容量自动增加之前的满度。当哈希表中的条目数超过加载因子和当前容量的乘积时,哈希表将被重新哈希(即,重建内部数据结构),这样哈希表将具有大约两倍的bucket数。

如何让HashMap变成线程安全的?

有两种方法可以使HashMap线程安全,如下所示:方法1:通过集合.synchronizedMap()返回线程安全的新映射。这要求我们习惯于基于接口的编程,因为我们返回的不是HashMap,而是map实现。方法2:重写HashMap,可以看到细节java.util.concurrent文件. 并发哈希映射。这种方法比方法一好得多。

自己实现hashmap hashmap缩容的实现原理 sql面试必会6题经典

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。