目录标题
HashMap底层数据结构原理解析
[Q&A] HashMap存值过程
HashMap底层数据结构时数组+链表
。HashMap数组每一个元素的初始值都是Null。PUT时候,对Key求哈希值来确定Entry的插入位置。哈希值重复时,单个Entry
拓展为链表
,后插入的Entry放在头节点,是因为HashMap的发明者认为,后插入的Entry被查找的可能性更大。
参考 HashMap底层数据结构原理解析
[Q&A] HashMap遍历过程
按数组顺序来遍历,如果遇到链表,则依次遍历链表中的元素,完了之后继续遍历数组的元素。
[Q&A] HashMap 链表何时转成红黑树
存储Entry的单一链表长度超过 8
个的时候,链表
结构就会转为红黑树
结构。
参考:HashMap底层实现原理解析
LinkedHashMap
LinkedHashMap底层是数组+链表+双向链表
实现的。用数组+链表
维护数据,用双向链表
来维护数据插入的顺序。
参考:图解LinkedHashMap
[Q&A] HashMap遍历过程
按双向链表
来遍历的,所以LinkedHashMap遍历的性能比HashMap高一点,因为HashMap中有空元素。