0
点赞
收藏
分享

微信扫一扫

你真的了解HashMap吗?

想溜了的蜗牛 2022-04-14 阅读 67
javahash

在这里插入图片描述

如图,是所有要讲解的内容,当你掌握图中思维导图,你对HashMap掌握的也就差不多了,今天先讲解前面三个部分。

1.什么是Hash?Hash表?Hashcode?

  1. Hash,一般称作散列或者哈希,是把任意长度的输入通过散列算法变成固定长度的输出。

  2. ​Hash表,一般叫散列表或者哈希表,是根据关键码值(Key,Value)而直接进行访问的数据结构。也就是说,他通过关键码值映射到表中一个位置来访问记录,已加快查找的速度。‘

  3. ​HashCode,一般叫做哈希码,并不是完全唯一的,对象相同,哈希码一定相同,但是哈希码相同,对象不一定相同。

​2.HashMap的数据结构?

  1. ​jdk1.7以及之前:数据加链表
  2. ​jdk1.8以及之后:数据加(链表或者红黑树)

3.HashMap容量?

HashMap默认容量大小为16,上限是2的30次方,当你指定容量大小的时候,如果超过最大值,会默认赋值最大值,否则会取大于等于你当前值最小的2的次方值。

​提问:为什么HashMap内部大小要设置2的次方?

  1. &运算速度速度比%快
  2. 能保证索引值在HashMap容量范围内
  3. (size - 1)& hash值是分布均匀的,可以减少hash碰撞




举报

相关推荐

0 条评论