原文:【集合框架】JDK1.8源码分析HashSet && LinkedHashSet(八)

一 前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet与LinkedHashSet,就会变成异常简单,下面开始进行分析。 二 数据结构 . HashSet数据结构 老规矩,先上数据结构,因为HashSet底层是基于HashMap 或者 LinkedHas ...

2016-03-23 09:56 5 2836 推荐指数:

查看详情

集合框架JDK1.8源码分析之HashMap(一)

一、前言   在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快 ...

Sat Mar 05 16:09:00 CST 2016 27 21160
集合框架JDK1.8源码分析之LinkedHashMap(二)

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

Mon Mar 07 17:30:00 CST 2016 0 4672
集合框架JDK1.8源码分析之LinkedList(七)

一、前言   在分析了ArrayList了之后,紧接着必须要分析它的同胞兄弟:LinkedList,LinkedList与ArrayList在底层的实现上有所不同,其实,只要我们有数据结构的基础,在分析源码的时候就会很简单,下面进入正题,LinkedList源码分析。 二、LinkedList ...

Wed Mar 23 16:59:00 CST 2016 6 7632
集合框架JDK1.8源码分析之Comparable && Comparator(九)

一、前言   在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。 二、示例   在正式讲解Comparable与Comparator之前 ...

Thu Mar 24 01:48:00 CST 2016 2 3070
集合框架JDK1.8源码分析之IdentityHashMap(四)

一、前言   前面已经分析了HashMap与LinkedHashMap,现在我们来分析不太常用的IdentityHashMap,从它的名字上也可以看出来用于表示唯一的HashMap,仔细分析了其源码,发现其数据结构与HashMap使用的数据结构完全不同,因为在继承关系上面,他们两没有任何关系 ...

Tue Mar 08 18:41:00 CST 2016 1 3073
集合框架JDK1.8源码分析之TreeMap(五)

一、前言   当我们需要把插入的元素进行排序的时候,就是时候考虑TreeMap了,从名字上来看,TreeMap肯定是和树是脱不了干系的,它是一个排序了的Map,下面我们来着重分析源码,理解其底层如何实现排序功能。下面,开始分析。 二、TreeMap示例 ...

Wed Mar 09 04:00:00 CST 2016 0 1964
集合框架JDK1.8源码分析之ArrayList(六)

一、前言   分析了Map中主要的类之后,下面我们来分析Collection下面几种常见的类,如ArrayList、LinkedList、HashSet、TreeSet等。下面通过JDK源码来一起分析ArrayList底层是如何实现的。(PS:把JVM看完了之后终于可以有成片的时间来阅读源码 ...

Wed Mar 23 04:37:00 CST 2016 1 12364
JDK(七)JDK1.8源码分析集合】TreeMap

本文转载自joemsu ,原文链接 【JDK1.8JDK1.8集合源码阅读——TreeMap(二) TreeMap是JDK中一种排序的数据结构。在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推荐 ...

Sat Jul 21 23:10:00 CST 2018 0 905
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM