
JDK源码解析
发飙的兔子哥
一只出生在人类社会中有温度、懂情趣,会思考的编程兔子
展开
-
HashMap插入源码解析
HashMap在JDK1.7版本头插法实现解析 先解释下何为头插法。大家都知道HashMap在JDK1.7版本的数据结构为数组+链表这样的形式。而头插法说的就是在往HashMap里面put元素时,此时新增在链表上元素的位置为链表头部,也就是数组桶位上的那个位置,故名头插法 直接上源码,看看JDK1.7的元素插入代码实现: public V put(K key, V value) { // 步骤1 if (table == EMPTY_TABLE) {原创 2020-07-17 17:09:35 · 378 阅读 · 0 评论 -
java.util.LinkedHashMap 类
前面我们介绍了 Map 集合的一种典型实现HashMap,关于 HashMap 的特性,我们再来复习一遍:①、基于JDK1.8的HashMap是由数组+链表+红黑树组成,相对于早期版本的 JDK HashMap 实现,新增了红黑树作为底层数据结构,在数据量较大且哈希碰撞较多时,能够极大的增加检索的效率。②、允许 key 和 value 都为 null。key 重复会被覆盖,v...原创 2019-12-27 13:47:56 · 1626 阅读 · 0 评论 -
java.util.HashMap 类
我们来介绍在 JDK1.8 中 HashMap 的源码实现,这也是最常用的一个集合。但是在介绍 HashMap 之前,我们先介绍什么是 Hash表。1.哈希表 Hash表也称为散列表,也有直接译作哈希表,Hash表是一种根据关键字值(key - value)而直接进行访问的数据结构。也就是说它通过把关键码值映射到表中的一个位置来访问记录,以此来加快查找的速度...原创 2019-12-25 10:03:27 · 1149 阅读 · 0 评论 -
java.util.LinkedList 类
1 引言 前面我们介绍了List集合的一种典型实现 ArrayList,我们知道 ArrayList 是由数组构成的,这次我们介绍 List 集合的另一种典型实现 LinkedList,这是一个由链表构成的数组。 大家都知道数组作为数据存储结构有一定的缺陷。在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大...原创 2019-12-25 09:56:51 · 1053 阅读 · 0 评论 -
JDK1.8源码解析之java.util.ArrayList 类
关于 JDK 的集合类的整体介绍可以看下图。本篇博客我们不系统的介绍整个集合的构造,重点是介绍 ArrayList 类是如何实现的1 ArrayList 定义ArrayList 是一个用数组实现的集合,支持随机访问,元素有序且可以重复。public class ArrayList<E> extends AbstractList<E> ...原创 2019-12-06 09:28:48 · 276 阅读 · 0 评论