“Java HashMap”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) |
Jihongchang(讨论 | 贡献) |
||
第3行: | 第3行: | ||
[[文件:Java 7 及之前的版本 HashMap 底层数据结构.png|无|缩略图|643x643像素]] | [[文件:Java 7 及之前的版本 HashMap 底层数据结构.png|无|缩略图|643x643像素]] | ||
− | + | HashMap 采用 Entry 数组来存储 key-value 对,每一个键值对组成了一个 Entry 实体,Entry 类实际上是一个单向的链表结构,它具有 next 指针,可以连接下一个 Entry 实体,以此来解决 Hash 冲突的问题,因为 HashMap 是按照 key 的 hash 值来计算 Entry 在 HashMap 中存储的位置的,如果 hash 值相同,而 key 内容不相等,那么就用链表来解决这种 hash 冲突 | |
=== Java 8 提供的 HashMap === | === Java 8 提供的 HashMap === |
2023年3月1日 (三) 06:10的版本
Java 8 之前的 HashMap
在 Java 7 及之前的版本中,HashMap 的底层实现是数组和链表:
HashMap 采用 Entry 数组来存储 key-value 对,每一个键值对组成了一个 Entry 实体,Entry 类实际上是一个单向的链表结构,它具有 next 指针,可以连接下一个 Entry 实体,以此来解决 Hash 冲突的问题,因为 HashMap 是按照 key 的 hash 值来计算 Entry 在 HashMap 中存储的位置的,如果 hash 值相同,而 key 内容不相等,那么就用链表来解决这种 hash 冲突