JAVA基础-集合框架
文章平均质量分 78
changhenshui1990
这个作者很懒,什么都没留下…
展开
-
Java集合框架的使用(总结)
一、前言 现笔者打算做关于Java集合框架的教程,具体是打算分析Java源码,因为平时在写程序的过程中用Java集合特别频繁,但是对于里面一些具体的原理还没有进行很好的梳理,所以拟从源码的角度去熟悉梳理具体类的原理和其中的数据结构。分析源码的好处总结如下三条: 1. 提升自身代码水平及写代码能力。 2. 可以顺带温习数据结构知识点。 3. 以后写代码遇到问题时能够找到最佳的解决办法二、集合...转载 2017-04-11 11:32:17 · 330 阅读 · 0 评论 -
集合框架(七):HashSet 和LinkedHashSet
一、前言 分析完了List的两个主要类之后,我们来分析Set接口下的类,HashSet和LinkedHashSet,其实,在分析完HashMap与LinkedHashMap之后,再来分析HashSet与LinkedHashSet,就会变成异常简单,下面开始进行分析。二、数据结构 2.1 HashSet数据结构 老规矩,先上数据结构,因为HashSet底层是基于HashMap 或者 Linke...转载 2018-03-21 13:15:15 · 175 阅读 · 0 评论 -
集合框架(八):Comparable 和 Comparator
一、前言 在Java集合框架里面,各种集合的操作很大程度上都离不开Comparable和Comparator,虽然它们与集合没有显示的关系,但是它们只有在集合里面的时候才能发挥最大的威力。下面是开始我们的分析。二、示例 在正式讲解Comparable与Comparator之前,我们通过一个例子来直观的感受一下它们的使用。 首先,定义好我们的Person类 class Person { ...转载 2018-03-21 13:16:35 · 154 阅读 · 0 评论 -
集合框架(六):TreeMap源码解读
一、前言 当我们需要把插入的元素进行排序的时候,就是时候考虑TreeMap了,从名字上来看,TreeMap肯定是和树是脱不了干系的,它是一个排序了的Map,下面我们来着重分析其源码,理解其底层如何实现排序功能。下面,开始分析。二、TreeMap示例import java.util.TreeMap;import java.util.Map;public class TreeMapTest {...转载 2018-03-21 13:11:09 · 239 阅读 · 0 评论 -
集合框架(五):HashMap 和LinkedHashMap迭代器
一、前言 在遍历HashMap与LinkedHashMap时,我们通常都会使用到迭代器,而HashMap的迭代器与LinkedHashMap迭代器是如何工作的呢?下面我们来一起分析分析。二、迭代器继承图 三、HashMap迭代器 3.1 HashIterator HashIterator是一个抽象类,封装了迭代器内部工作的一些操作。 HashIterator类属性abstract c...转载 2018-03-21 13:06:06 · 2108 阅读 · 0 评论 -
集合框架(四):LinkedHashMap源码解读
一、前言 前面我们已经分析了HashMap的源码,已经知道了HashMap可以用在哪种场合,如果这样一种情形,我们需要按照元素插入的顺序来访问元素,此时,LinkedHashMap就派上用场了,它保存着元素插入的顺序,并且可以按照我们插入的顺序进行访问。二、LinkedHashMap用法import java.util.Map;import java.util.LinkedHashMap;...转载 2018-03-21 13:04:25 · 146 阅读 · 0 评论 -
集合框架(三):HashMap源码解读
一、前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也可以使用红黑树进行存储,总之,目标只有一个,那就是在安全和功能性完备的情况下让其速度更快,提升性能。好~下面就开始分析源码。二、HashMap数据结构 说明:上...转载 2018-03-21 13:02:11 · 179 阅读 · 2 评论 -
集合框架(二):LinkedList源码解读
一、前言 在分析了ArrayList了之后,紧接着必须要分析它的同胞兄弟:LinkedList,LinkedList与ArrayList在底层的实现上有所不同,其实,只要我们有数据结构的基础,在分析源码的时候就会很简单,下面进入正题,LinkedList源码分析。二、LinkedList数据结构 还是老规矩,先抓住LinkedList的核心部分:数据结构,其数据结构如下 说明:如上图所示,L...转载 2018-03-21 12:59:06 · 188 阅读 · 0 评论 -
集合框架(一):ArrayList源码解读
一、前言 分析了Map中主要的类之后,下面我们来分析Collection下面几种常见的类,如ArrayList、LinkedList、HashSet、TreeSet等。下面通过JDK源码来一起分析ArrayList底层是如何实现的。(PS:把JVM看完了之后终于可以有成片的时间来阅读源码了,感觉简直不能更爽)。二、ArrayList数据结构 分析一个类的时候,数据结构往往是它的灵魂所在,理解底...转载 2018-03-21 12:48:51 · 169 阅读 · 0 评论 -
集合框架(九):Collections 和 Arrays的使用
一、前言 整个集合框架的常用类我们已经分析完成了,但是还有两个工具类我们还没有进行分析。可以说,这两个工具类对于我们操作集合时相当有用,下面进行分析。二、Collections源码分析 2.1 类的属性 public class Collections { // 二分查找阈值 private static final int BINARYSEARCH_THRESHOLD =...转载 2017-04-10 10:23:50 · 1038 阅读 · 0 评论