【集合框架】JDK1.8源码分析之Collections && Arrays(十)(2)
三、Arrays源码分析 3.1 类的属性 public class Arrays { // 可以进行并行排序的最小数组长度 private static final int MIN_ARRAY_SORT_GRAN = 1 << 13; }3.2 构造函数 private Arrays() {}说明:私有构造函数,类外不允许调用。 3.3 方法分析 Array...
【集合框架】JDK1.8源码分析之Collections && Arrays(十)(1)
一、前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析。可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析。二、Collections源码分析 2.1 类的属性 public class Collections { // 二分查找阈值 private static final int BINARYSEARCH_THRESHOLD ...
【集合框架】JDK1.8源码分析之Comparable && Comparator(九)
一、前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。二、示例 在正式讲解Comparable与Comparator之前,我们通过一个例子来直观的感受一下它们的使用。 首先,定义好我们的Person类 class Person { .....
【集合框架】JDK1.8源码分析HashSet && LinkedHashSet(八)
一、前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet与LinkedHashSet,就会变成异常简单,下面开始进行分析。二、数据结构 2.1 HashSet数据结构 老规矩,先上数据结构,因为HashSet底层是基于HashMap 或者 Link....
【集合框架】JDK1.8源码分析之LinkedList(七)
一、前言 在分析了ArrayList了之后,紧接着必须要分析它的同胞兄弟:LinkedList,LinkedList与ArrayList在底层的实现上有所不同,其实,只要我们有数据结构的基础,在分析源码的时候就会很简单,下面进入正题,LinkedList源码分析。二、LinkedList数据结构 还是老规矩,先抓住LinkedList的核心部分:数据结构,其数据结构说明:如上图所示,Link....
【集合框架】JDK1.8源码分析之ArrayList(六)
一、前言 分析了Map中主要的类之后,下面我们来分析Collection下面几种常见的类,如ArrayList、LinkedList、HashSet、TreeSet等。下面通过JDK源码来一起分析ArrayList底层是如何实现的。(PS:把JVM看完了之后终于可以有成片的时间来阅读源码了,感觉简直不能更爽)。二、ArrayList数据结构 分析一个类的时候,数据结构往往是它的灵魂所在,理解....
【集合框架】JDK1.8源码分析之TreeMap(五)
一、前言 当我们需要把插入的元素进行排序的时候,就是时候考虑TreeMap了,从名字上来看,TreeMap肯定是和树是脱不了干系的,它是一个排序了的Map,下面我们来着重分析其源码,理解其底层如何实现排序功能。下面,开始分析。二、TreeMap示例import java.util.TreeMap; import java.util.Map; public class TreeMapTest {....
【集合框架】JDK1.8源码分析之IdentityHashMap(四)
一、前言 前面已经分析了HashMap与LinkedHashMap,现在我们来分析不太常用的IdentityHashMap,从它的名字上也可以看出来用于表示唯一的HashMap,仔细分析了其源码,发现其数据结构与HashMap使用的数据结构完全不同,因为在继承关系上面,他们两没有任何关系。下面,进入我们的分析阶段。二、IdentityHashMap示例 import java.util.Ma....
【集合框架】JDK1.8源码分析之HashMap & LinkedHashMap迭代器(三)
一、前言 在遍历HashMap与LinkedHashMap时,我们通常都会使用到迭代器,而HashMap的迭代器与LinkedHashMap迭代器是如何工作的呢?下面我们来一起分析分析。二、迭代器继承图三、HashMap迭代器 3.1 HashIterator HashIterator是一个抽象类,封装了迭代器内部工作的一些操作。 HashIterator类属性abstract clas....
【集合框架】JDK1.8源码分析之LinkedHashMap(二)
一、前言 前面我们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样一种情形,我们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照我们插入的顺序进行访问。二、LinkedHashMap用法import java.util.Map; import java.util.LinkedHashMap; ....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。