
HashMap
从了解HashMap数据结构开始,深入理解HashMap1.7和1.8底层源码进一步去理解如何使用数组+链表+红黑树以及扩容机制的使用。
简单的小宋
本人专注于产品规划设计,项目管理,Java开发技术等相关知识,目前处于RPA行业,担任高级产品经理,望与各位博友共同成长。以梦为马,不负韶华。
展开
-
花落--HashMap系列之1.8TreeNode删除源码篇(四)
嗨,同学们又见面了,前面hashmap的系列文章中我们依次从1.7讲到了1.8的树化,下面我会接着上篇文章的树化源码TreeNode接着往下讲,今天讲的是TreeNode的删除源码分析。 文章目录TreeNode删除removeTreeNode函数balanceDeletion函数 TreeNode删除 上篇文章的树化源码是分了两步来走的(treeify到balanceInsertion),同样TreeNode删除节点也是两步走(removeTreeNode到balanceDeletion),先进行二叉查找原创 2020-11-25 15:09:18 · 6097 阅读 · 7 评论 -
缘灭--HashMap系列之1.8put源码篇(三)
文章目录TreeNode结构HashMap1.8(插入)中的树化treeify函数balanceInsertion函数左旋右旋rotateLeft函数和rotateRight函数moveRootToFront函数checkInvariants函数 TreeNode结构 上面我们陆续讲解了二叉查找树和红黑树理论知识,接着我们讲一下代码层面。下面是HashMap1.8中的TreeNode结构: /** * 用于Tree bins 的Entry。 扩展LinkedHashMap.Entry(进而扩展N原创 2020-11-24 22:59:41 · 7356 阅读 · 13 评论 -
花开--HashMap系列之红黑树篇(二)
昨天我们把HashMap的基本理论和1.7底层做了着重的分析讲解,今天我们接着上篇文章最后提到过的红黑树继续往下讲。 文章目录红黑树二叉查找树介绍左旋和右旋红黑树介绍TreeNode介绍 红黑树 二叉查找树介绍 说到红黑树我们就要先讲解一下二叉查找树,方便不了解二叉树的同学了解一下,知道的同学也可以复习一下这部分的知识点。 二叉查找树:二分查找算法映射出来的结构 引入图片如下: 这里说一下二叉查找树的特点: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所原创 2020-11-24 17:52:02 · 8011 阅读 · 13 评论 -
缘起--HashMap系列之1.7源码篇(一)
上周五在部门讲解红黑树的相关知识就顺便复习了一下hashmap,这周整理一下笔记,接着会写关于hashmap的系列博客。 这里写目录标题HashMap基本概念HashMap1.7(数组+链表)1.7 put源码解析(数组+链表+扩容) HashMap基本概念 现在大家都已经在使用hashmap1.8了。1.8和之前1.7最大的区别就是在底层新增了红黑树。这里给不太了解hashmap的朋友普及一下基本概念。 HashMap 1.7是由数组+链表组成。HashMap1.8是由数组+链表+红黑树组成。 然后存储原创 2020-11-23 14:56:49 · 6699 阅读 · 16 评论