
Java集合
文章平均质量分 95
whgtheone
这个作者很懒,什么都没留下…
展开
-
List接口下的集合源码分析——LinkedList
源码版本JDK1.8 今天带来的是List的另一种实现——LinkedList,这是一种基于双向链表实现的列表。接下来让我们通过源码来分析一下它吧。 关于源码中的一些小改动 在JDK1.6及之前,LinkedList底层是一个双向循环链表,容器中的元素都是静态内部类Entry的对象,列表中必有一个空头结点; 在JDK1.7及之后,LinkedList底层是一个双向非循环链表,容...原创 2018-05-02 09:33:23 · 259 阅读 · 0 评论 -
深度剖析HashMap(一)——基于JDK7
HashMap是每个Java/Android程序员必须掌握的一种容器。在这个专题下将分若干篇文章对其进行深度剖析。由于JDK版本的不同,HashMap的底层实现也有些许差别。本文先对基于JDK7的HashMap进行分析,之后会奉上JDK8中对HashMap实现改动的分析。 一、HashMap结构概览 在JDK7中,HashMap说白了就是用到两种数据结构——数组与链表。 数组: 需要连续的...原创 2018-05-02 21:50:52 · 308 阅读 · 0 评论 -
深度剖析HashMap(二)——基于JDK7
上一篇说到的仅仅是JDK7在极端情况下读减少碰撞概率的一些优化,以及hash函数采用的“扰动函数”思想。本篇将分析HashMap的主要方法,同时也是核心方法,是学习HashMap必然要理解的部分。话不多少,Let’s do it! 一、插入元素 简述以下HashMap插入元素的大致的过程: 判断键值是否为空,若为空,调用putForNullKey()方法。所有键值为空的键值对都存储在E...原创 2018-05-04 20:36:41 · 248 阅读 · 0 评论 -
关于Java集合中的迭代
一、接口Iterable和接口Iterator的区分及联系 【英文释义】 Iterable:可迭代的,形容词。 Iterator:迭代器,名词。 Iterable JDK源码: public interface Iterable<T> { Iterator<T> iterator();//iterator方法用于返回一个实现了Iterator接口的...原创 2018-04-26 22:37:37 · 3101 阅读 · 0 评论 -
List接口下的集合源码分析——ArrayList
从本篇开始将对实现List接口的集合——ArrayList、LinkedList、Vector做一个源码分析。那么先从ArrayList开始吧。 一、ArrayList概述 在源码中对ArrayList是这么描述的: Arraylist是实现List接口的可调整大小的数组,拥有List接口的所有操作,可包含任何类型的元素,包括null值。这个类除了非同步的特性,大体上和Vec...原创 2018-04-27 16:29:40 · 213 阅读 · 0 评论