HashMap是数组的链表(红黑树),
new HashMap<>(16)传入的长度是数组的长度,
那么链表(红黑树)的长度是不定的,
并且jdk1.8做了优化,当链表长度大于8时就转换为红黑树,那么增删改查速度提升了
为什么容量还要和数组长度一样,当key都在数组的同一个索引上时不是会造成大量空间浪费吗?
为什么HashMap的容量等于数组长度?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- threenewbee 2019-01-04 12:24关注
hash算法本身就应该避免在一般情况下,key是均匀分布的,出现分布不均匀的是极少数的情况。为了解决这种罕见的情况,hash算法还可以设计为二次探测/再散列。
你说的那种大量浪费的情况,在工程实践的情况下,不会发生。解决 无用评论 打赏 举报
悬赏问题
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码