HashMap
文章平均质量分 81
Zyred
这个作者很懒,什么都没留下…
展开
-
HashMap - 核心原理与知识点记录(下)
HashMap get 方法执行逻辑分析 HashMap - 核心原理与知识点记录(上) HashMap - 核心原理与知识点记录(中) 1. get 方法的源码分析 public V get(Object key) { Node<K,V> e; // 计算出 hash 值 return (e = getNode(hash(key), key)) == null ? null : e.value; } final Node<K,V> getNode(int原创 2021-10-15 16:27:21 · 174 阅读 · 0 评论 -
HashMap - 核心原理与知识点记录(中)
HashMap resize 方法执行逻辑及部分问题的分析 HashMap - 核心原理与知识点记录(上) 本文主要通过一下几个问题进行探讨: 如何进行扩容的,扩容大小为什么总是2的幂次大小 ? 为什么链表转红黑树的阈值是 8 ? 1. 如何进行扩容的 ? HashMap 无论是扩容还是初始化,在 Java8 版本中,都是用的同一个方法 resize(),那么接下来进入代码: final Node<K,V>[] resize() { Node<K,V>[] oldTab原创 2021-10-15 13:43:22 · 230 阅读 · 0 评论 -
HashMap - 核心原理与知识点记录(上)
HashMap 核心原理与知识点记录 数据结构可视化网站: https://www.cs.usfca.edu/~galles/visualization/Algorithms.html 本文主要通过一下几个问题进行探讨: 什么是 HashMap? HashMap为什么要使用这样的数据结构?解决了什么问题? 1.8 版本中hashcode 为什么要和 hash高16位做异或运算 ? HashMap 执行 put() 内部做了些什么事情 ? 如何进行扩容的,扩容大小为什么总是2的幂次大小 ? 采用红黑树的目的原创 2021-10-14 17:09:23 · 250 阅读 · 2 评论