Java面向对象
Java异常
Java数组
Java常用类
Java集合
Java IO流
Java线程
Java反射
Socket编程
Java注解开发
Java GoF设计模式
HashMap
Java内存模型
Java线性表

HashMap的工作原理

哈希表的数据结构

HashMap底层数据结构是哈希表, 也叫散列表。

哈希表就是一个数组, 数组的每个元素是一个单向链表。

数组就是一种顺序存储结构, 特点是可以通过数组的下标(索引值)快速的访问数组的每个元素, 实现了随机访问; 在向数组中插入元素/删除元素时, 可能需要扩容,移动/复制元素,效率比较低。

单向链表就是一种链式存储结构, 特点插入/删除时,不需要移动元素,效率比较高;在访问元素时总是从头结点逐个访问,相对数组效率比较低。

HashMap的put(key,value)的工作原理

HashMap的get工作原理

 

JDK8中HashMap的改进

JDK8哈希表中的红黑树

HashMap中的哈希碰撞

全部教程