“Java HashMap”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第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 冲突

Java 8 提供的 HashMap