Java集合框架
js_tengzi
这个作者很懒,什么都没留下…
展开
-
HashMap源码阅读01
本篇文章介绍了JDK1.8中HashMap的内部结构及各种条件下调用put方法HashMap的行为。另外通过对HashMap的源码进行阅读,整理了部分注释及翻译,附在文章末尾。原创 2019-05-25 10:40:18 · 270 阅读 · 0 评论 -
HashSet源码阅读
之前我们研究了HashMap的源码,那么接下来我们趁热打铁来看下HashSet的源码中有什么奥妙。原创 2019-06-03 20:12:58 · 509 阅读 · 0 评论 -
LinkedList源码阅读
我们之前已经进行过ArrayList的源码阅读,我们知道,同样继承了List接口的LinkedList,比起ArrayList而言,LinkedList在新增元素和删除元素时表显要好,那么今天我们就一起看看LinkedList源码中蕴含了什么秘密。原创 2019-06-03 17:33:17 · 103 阅读 · 0 评论 -
HashMap源码阅读08
之前的HashMap源码阅读系列给我们呈现了HashMap内部的基本结构,还有扩容条件及过程分析等,今天我们就来进行一个整体的总结,主要包括与JDK1.7的对比和主要方法的流程总结。原创 2019-06-01 21:41:43 · 145 阅读 · 0 评论 -
HashMap源码阅读06
上篇文章中介绍了treeifyBin方法,我们找到了另一个引起HashMap扩容的原因。这次我们一起来看下treeifyBin方法除了扩容之外,还能做什么事。原创 2019-05-28 17:41:36 · 207 阅读 · 1 评论 -
HashMap源码阅读07
上一篇我们研究了treeifyBin方法,发现在链表长度超过8并且节点数组长度超过64时,HashMap会将链表转化成一条双向链表,再将这条双向链表转化成一棵红黑树。这一篇文章我们就一起来看下HashMap是如何将双向链表转化成红黑树的。原创 2019-05-31 10:57:39 · 152 阅读 · 0 评论 -
红黑树(Red-Black Tree)
由于上篇文章《HashMap源码阅读06》中,我们提到了红黑树的概念。今天我们就来了解下红黑树,对它有一个基本的认识。原创 2019-05-30 22:18:23 · 268 阅读 · 0 评论 -
HashMap源码阅读05
记得上一篇文章中,提到了一段代码:treeifyBin(tab, hash);这次我们就来看看,这个方法做了什么。原创 2019-05-28 11:45:48 · 114 阅读 · 0 评论 -
HashMap源码阅读04
上一篇文章我们呈现了HashMap在扩容时对链表节点的处理过程,这篇文章我们就对其中规律一探究竟。原创 2019-05-28 10:22:01 · 325 阅读 · 0 评论 -
ArrayList源码阅读
ArrayList源码阅读前言get方法add方法 前言 根据jdk8中ArrayList源码注释得知: 对ArrayList源码注释进行阅读: Resizable-array implementation of the List interface. Implements all optional list operations, and permits all elements, inclu...原创 2019-05-23 17:32:08 · 129 阅读 · 0 评论 -
HashMap源码阅读03
上篇文章中我们研究了当HashMap调用put方法,出现“hash冲突”时的处理机制。我们在整理HashMap的内部存储结构的基础上进一步呈现了当HashMap在扩容时,原有链表结构上的节点是如何处理的过程。原创 2019-05-27 16:54:05 · 109 阅读 · 0 评论 -
HashMap源码阅读02
上篇文章《HashMap源码阅读01》中记录了一个问题,当HashMap依次put键值对时,并没有按照由小到大的顺序排列,而是跳过了中间几个数字,今天我们就来一探究竟原创 2019-05-27 12:23:40 · 305 阅读 · 2 评论 -
Hashtable源码阅读
我们之前已经阅读过HashMap的源码了,我们知道Hashtable与HashMap都可以用来存储<K,V>键值对,但是HashMap相对高效,而Hashtable可以保证线程安全。那么接下来我们就一起深入Hashtable的源码来一探究竟。原创 2019-06-03 23:25:00 · 169 阅读 · 0 评论