自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 JAVA集合源码攻坚战(17)—— Queue

JAVA集合源码攻坚战(17)—— Queue前言正文源码解析前言本篇开始我们来分析Collection的最后一个主要分支——Queue队列。正文源码解析package java.util;/** * 设计用于在处理之前保留元素的集合。 * 除了基础的Collection操作,队列提供了额外的插入、提取和检查操作。 * 这些方法中的每个都支持两种形式: * 1、如果操作失败...

2018-10-31 17:23:49 356

原创 JAVA集合源码攻坚战(16)—— NavigableSet

JAVA集合源码攻坚战(16)—— NavigableSet前言正文源码分析查找操作查找并移除操作迭代器获得子集操作前言NavigableSet是对SortedSet的一个增强实现,能够进行数据的匹配。具体我们看分析代码。正文java.util Interface NavigableSet<E>参数类型 E - 由此集合维护的元素的类型 All Superinterf...

2018-10-30 15:00:11 546

原创 JAVA集合源码攻坚战(15)—— SortedSet

JAVA集合源码攻坚战(14)—— SortedSet前言正文标准源码解析子集操作元素操作比较器前言前面我们已经分析了HashSet这一个分支,今天我们来分析SortedSet这个分支。正文前面的HashSet实现是无序的,而这条线上的SortedSet,顾名思义,是有序的set集合。java.util Interface SortedSet<E>参数类型 E - 由...

2018-10-30 10:37:26 546

原创 JAVA集合源码攻坚战(14)—— LinkedHashSet

JAVA集合源码攻坚战(14)—— LinkedHahSet前言正文前言今天快下班了,简单看了下LinkedHashSet的相关源码 o(*^@^*)o正文通过源码,我们可以看到,LinkedHashSet的源码很少很少。/* * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. ...

2018-10-29 17:29:10 209

原创 JAVA集合源码攻坚战(13)—— HashSet

JAVA集合源码攻坚战(13)—— HashSet前言正文什么是HashSetHashSet如何存储数据属性解析方法解析构造方法迭代器基础操作前言前面介绍了Set这一分支的接口和抽奖类,今天来看看它的一个具体实现类——HashSet。正文HashSet层次结构java.util Class HashSet<E>java.lang.Object java.util.Abs...

2018-10-29 17:04:40 180

原创 JAVA集合源码攻坚战(12)—— AbstractSet

JAVA集合源码攻坚战(12)—— AbstractSet前言正文实现的方法equals方法hashCode方法removeAll方法无参构造器前言上一篇对Set接口的方法做了个简单的介绍,主要需要注意的,就是Set是不支持重复元素,并且,无法用索引来获取对应元素。因为可以看到,声明的方法里没有根据位置信息来查找元素的。正文这里我们来介绍Set的一个抽象实现类AbstractSet。ja...

2018-10-26 17:32:20 230

原创 JAVA集合源码攻坚战(11)—— Set

JAVA集合源码攻坚战(11)—— Set前言正文前言好,今天开始学Set,你说为什么?没有为什么!!W( ̄_ ̄)W正文

2018-10-26 11:35:13 289 1

原创 JAVA集合源码攻坚战(10)——Stack

JAVA集合源码攻坚战(10)——Stack前言正文前言上篇我们简单介绍了下Vector,没有细讲,因为Vector和ArrayList实在没有什么很大的区别,最主要的就是一个是否是同步,一个扩容机制的区别。然后我们这篇就干脆把这一条支线讲完,接下来就是Vector的一个子类,有名的栈Stack。栈Stack作为学习数据结构只是的一个必学知识点,他的知名度比父亲Vector可要大的多了,正所...

2018-10-24 12:13:48 185

原创 JAVA集合源码攻坚战(9)—— Vector

JAVA集合源码攻坚战(9)—— Vector前言正文Vector前言上一篇博文已经讲到了AbstractSequentialList这个接口类,本来是想先看LinkedList的源码的,但是发现LinkedList实现了队列相关接口,所以这里还是先把list的其他部分讲完。正文Vector...

2018-10-22 16:36:54 248

原创 JAVA集合源码攻坚战(8)——AbstractSequentialList

JAVA集合源码攻坚战(8)——AbstractSequentialList前言正文简介构造函数get操作set操作add操作remove操作addAll操作前言前面已经初步介绍过了Arraylist了,那么后面就应该讲讲经常会拿来和ArrayList进行对比的LinkedList吧,不过因为这之间还有个区别,因为LinkedList并不是直接继承了AbstractList的,中间还有个抽象类...

2018-10-12 14:34:27 233

原创 JAVA集合源码攻坚战(7)——ArrayList

前言前面都是分析了一些接口或抽象类。是不是感觉很枯燥?那么今天就来看看十分常用的ArrayList,看看它到底是如何来实现前面说的那些接口或者抽象类的。ArrayList数据结构我们说一个集合,不得不提的就是他存储的数据结构到底是怎样的。ArrayList,通过名字就能看出,是Array + List,虽然不能等同,但是能从这方便去思考。ArrayList底层就是数组一个数组结构,但是...

2018-10-11 18:13:23 246

原创 JAVA集合源码攻坚战(6)——AbstractList

前言前面我们已经分析过AbstractCollection和List这两个接口类了,接下来分析AbstractList。AbstractList的父母刚刚灵光一闪,想到一个不太恰当的比喻。比如AbstractList,继承了AbstractCollection,实现了List接口,那么AbstractCollection相当于是父亲,子承父业,List相当于母亲,百善孝为先,应该实现母亲的愿...

2018-10-10 18:00:46 215

原创 JAVA集合源码攻坚战(5)——AbstractCollection

前言前面讲到Collection后,把这个类给漏掉了。AbstractCollection是对Collection接口的一个直接实现,而像list和set集合的具体实现的抽象类,也都是通过继承它来实现的。正文根据官方文档:This class provides a skeletal implementation of the Collection interface, to minim...

2018-10-09 16:52:14 186

原创 JAVA集合源码攻坚战(4)——List

前言根据java 8 的官方文档,Collection接口类下面有三个子接口类,List、Set、Queue。List基础List接口是定义了一个元素有序的、可重复的、可为null的集合结构。为什么List中元素是有序的呢?根据官方文档描述The user of this interface has precise control over where in the list e...

2018-10-09 14:52:14 216 1

原创 JAVA集合源码攻坚战(3)——Collection

前言集合作为java中一个重要的组成部分,必须攻克!什么是集合在我看来,从本质上来说,集合首先是一个容器,里面可以存放数据,不管是基本类型还是其他类型的数据。从作用上来说,集合又提供了一些方法,能对存放在里面的数据进行操作,增删查等等。什么是集合框架在java 2 之前,已经有许多类来存储和操作数据对象,但是没有一个统一的标准,使得使用不同的集合类有很大的不同,而为了解决这个问题,建立了...

2018-10-09 10:40:31 181

原创 JAVA集合源码攻坚战(2)——ListIterator

前言上一篇主要介绍了java集合框架的一个整体结构,并简单分析了下Iterator接口的源码,接下来分析ListIterator的源码ListIteratorListIterator也是一个接口类,继承了Iterator接口,对比于Iterator,它的方法如下:boolean hasNext() // 判断后面是否还有元素E next() // 返回下一个元素boolean ha...

2018-10-09 09:19:19 169

原创 JAVA集合源码攻坚战(1)——Iterator

前言工作了两年了,对JAVA集合框架部分,只知道怎么用,却不知道原理,不能说是一个合格的java程序员,深感知识的缺乏,所以趁最近有空,进行JAVA集合攻坚战,学习JAVA集合部分的源码,以jdk 1.8为准。整个JAVA集合框架的概图这里先看一张取自菜鸟教程的java集合框架图菜鸟教程的这张图已经包括了大部分类和接口之间的关系,不过还有一些遗漏的,而且也没有很好的表示出继承或实现的关系...

2018-10-08 17:04:59 229

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除