前言

本文基于版本 JDK 1.7,即 Java 7关于版本 JDK 1.8,即 Java 8,具体请看文章Java源码分析:关于 HashMap 1.8 的重大更新

目录

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2fbaa5a9-dbe5-4482-84e7-ca57870b2089/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzk0NDM2NS05NmZmMDc4ODg4ODUyMTg2LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA

1. 简介

public class HashMap<K,V>
         extends AbstractMap<K,V>
         implements Map<K,V>, Cloneable, Serializable

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6587084f-03e5-43ea-b5d3-9d5955774bf9/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzk0NDM2NS0wODZiNThhZWVlMmQwMGNiLnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA

关于 JDK 1.8 中 HashMap 的源码解析请看文章:Java源码分析:关于 HashMap 1.8 的重大更新

2. 数据结构

2.1 具体描述

HashMap 采用的数据结构 = 数组(主) + 单链表(副),具体描述如下

该数据结构方式也称:拉链法

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fc13bc34-8319-4db2-982e-a5112205dc2b/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzk0NDM2NS00YmYzMjA4MmJmMjk3ZGQ5LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA

2.2 示意图