原文:【JDK1.8】JDK1.8集合源码阅读——LinkedHashMap

一 前言 在上一篇随笔中,我们分析了HashMap的源码,里面涉及到了 个钩子函数,用来预设给子类 LinkedHashMap的调用,所以趁热打铁,今天我们来一起看一下它的源码吧。 二 LinkedHashMap的结构与继承关系 . LinkedHashMap的数据结构 可以从上图中看到,LinkedHashMap数据结构相比较于HashMap来说,添加了双向指针,分别指向前一个节点 before ...

2017-11-05 12:10 0 3204 推荐指数:

查看详情

JDK1.8JDK1.8集合源码阅读——总章

一、前言   今天开始阅读jdk1.8集合部分,平时在写项目的时候,用到的最多的部分可能就是Java的集合框架,通过阅读集合框架源码,了解其内部的数据结构实现,能够深入理解各个集合的性能特性,并且能够帮助自己在今后的开发中避免犯一些使用错误。另外笔者自己也是摸着石头过河,如果有描述不当的地方 ...

Sun Oct 15 05:24:00 CST 2017 0 3691
JDK1.8JDK1.8集合源码阅读——TreeMap(一)

一、前言 在前面两篇随笔中,我们提到过,当HashMap的桶过大的时候,会自动将链表转化成红黑树结构,当时一笔带过,因为我们将留在本章中,针对TreeMap进行详细的了解。 二、TreeMap ...

Thu Nov 23 00:15:00 CST 2017 0 1085
JDK1.8JDK1.8集合源码阅读——Set汇总

一、前言 这一篇里,我将对HashSet、LinkedHashSet、TreeSet进行汇总分析,并不打算一一进行详细介绍,因为JDK对Set的实现进行了取巧。我们都知道Set不允许出现相同的对象,而Map也同样不允许有两个相同的Key(出现相同的时候,就执行更新操作)。所以Set里的实现 ...

Sun Feb 04 19:19:00 CST 2018 0 1976
JDK1.8JDK1.8集合源码阅读——ArrayList

一、前言 在前面几篇,我们已经学习了常见了Map,下面开始阅读实现Collection接口的常见的实现类。在有了之前源码的铺垫之后,我们后面的阅读之路将会变得简单很多,因为很多Collection的结构与Map的类似,甚至有不少是直接用了Map里的方法。接下来让我们一起来看一下ArrayList ...

Fri Dec 22 17:54:00 CST 2017 0 1161
JDK1.8JDK1.8集合源码阅读——HashMap

一、前言 笔者之前看过一篇关于jdk1.8的HashMap源码分析,作者对里面的解读很到位,将代码里关键的地方都说了一遍,值得推荐。笔者也会顺着他的顺序来阅读一遍,除了基础的方法外,还添加了很多其他补充内容。 二、HashMap结构概览 以下是HashMap的数据结构: 不同于之前 ...

Wed Oct 25 17:14:00 CST 2017 2 3591
JDK1.8JDK1.8集合源码阅读——TreeMap(二)

一、前言 在前一篇博客中,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推荐大家先看一下:《算法4》深入理解红黑树。(个人比较喜欢算法四这里介绍的红黑树实现:从2-3树 ...

Fri Dec 01 19:01:00 CST 2017 2 795
集合框架】JDK1.8源码分析之LinkedHashMap(二)

一、前言   前面我们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样一种情形,我们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照我们插入的顺序进行访问。 二、LinkedHashMap用法 ...

Mon Mar 07 17:30:00 CST 2016 0 4672
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM