试题
考点

java语言-子主题1-hashmap的扩容原理

面5笔5

HashMap 有什么特点?1.7和1.8底层结构有什么区别?

前往“校招VIP”小程序,刷题更快
最新校招难题刷题,快来进刷题群吧
解答

DK8 之前底层实现是数组 + 链表,JDK8 改为数组 + 链表/红黑树,节点类型从Entry 变更为 Node。
主要成员变量包括存储数据的 table 数组、元素数量 size、加载因子 loadFactor。

table 数组记录 HashMap 的数据,每个下标对应一条链表,所有哈希冲突的数据都会被存放到同一条链表,
Node/Entry 节点包含四个成员变量:key、value、next 指针和 hash 值。

HashMap 中数据以键值对的形式存在,键对应的 hash 值用来计算数组下标,如果两个元素 key 的 hash 值一样,
就会发生哈希冲突,被放到同一个链表上,为使查询效率尽可能高,键的 hash 值要尽可能分散。

HashMap 默认初始化容量为 16,扩容容量必须是 2 的幂次方、最大容量为 1<< 30 、默认加载因子为 0.75。

评论

偷看星星

2025-02-05 23:00:00

0 0

山田心的平方

2021-11-16 21:00:00

0 0

夏至末日

2021-09-11 23:35:00

0 0

目田

2021-09-10 14:05:00

0 0

加载更多