HashMap 是 Java 集合框架中最重要且最常用的数据结构之一,它基于哈希表实现,提供了高效的键值对存储和检索能力。以下是 HashMap 核心工作原理的全面解析:
一、底层数据结构(JDK 8+优化)
1. 主体结构:数组 + 链表 + 红黑树
transient Node<K,V>[] table; // 主数组(哈希桶数组)
static class Node<K,V> implements Map.Entry<K,V> {
final int hash;
final K key;
V value;
Node<K,V> next; // 链表结构
}
static final class TreeNode<K,V> extends LinkedHashMap.Entry<K,V> {
TreeNode<K,V> parent; // 红黑树结构
TreeNode<K,V> left;
TreeNode<K,V> right;
TreeNode<K,V> prev;
boolean red;