HashMap
在 Java
和 Android
开发中非常常见HashMap
的全部源码分析,希望你们会喜欢。本文基于版本 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
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
HashMap
的实现在 JDK 1.7
和 JDK 1.8
差别较大JDK 1.7
中 HashMap
的源码解析关于 JDK 1.8 中 HashMap 的源码解析请看文章:Java源码分析:关于 HashMap 1.8 的重大更新
HashMap
采用的数据结构 = 数组(主) + 单链表(副),具体描述如下
该数据结构方式也称:拉链法
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/fc13bc34-8319-4db2-982e-a5112205dc2b/aHR0cDovL3VwbG9hZC1pbWFnZXMuamlhbnNodS5pby91cGxvYWRfaW1hZ2VzLzk0NDM2NS00YmYzMjA4MmJmMjk3ZGQ5LnBuZz9pbWFnZU1vZ3IyL2F1dG8tb3JpZW50L3N0cmlwJTdDaW1hZ2VWaWV3Mi8yL3cvMTI0MA