校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > java语言 > HashMap、Hashtable、concurrentthashmap
题目

hashmap中如何计算下标(字节校招)

解答

HashMap 是典型的key 对应 value的接口 , 里面是数组加链表, 当key 的hash值冲突时 用链地址法解决冲突,在同一个相同下标的table中用链表的形式连接起来。

HashMap内部包含了一个 Entry 类型的数组 table。

transient Entry[] table;

Entry 存储着键值对。它包含了四个字段,从 next 字段我们可以看出 Entry 是一个链表。即数组中的每个位置被当成一个桶(bucket),一个桶存放一个链表。HashMap 使用拉链法来解决冲突,同一个链表中存放哈希值相同的 Entry。

HashMap确定桶下标的最后一步是将 key 的 hash 值对桶个数取模:hash%capacity。

如果能保证 capacity 为 2 的 n 次方,那么就可以将这个操作转换为位运算。

C 2条回复 评论
胡俟

只会写初级sql的我看不大懂

发表于 2022-11-14 21:00:00
0 0
山田心的平方

前端真的不难,后台确实比前台难一点,奥利给。

发表于 2022-03-15 23:00:00
0 0