java集合框架
疾风de小羊
这个作者很懒,什么都没留下…
展开
-
JAVA集合源码攻坚战(7)——ArrayList
前言前面都是分析了一些接口或抽象类。是不是感觉很枯燥?那么今天就来看看十分常用的ArrayList,看看它到底是如何来实现前面说的那些接口或者抽象类的。ArrayList数据结构我们说一个集合,不得不提的就是他存储的数据结构到底是怎样的。ArrayList,通过名字就能看出,是Array + List,虽然不能等同,但是能从这方便去思考。ArrayList底层就是数组一个数组结构,但是...原创 2018-10-11 18:13:23 · 248 阅读 · 0 评论 -
JAVA集合源码攻坚战(20)——BlockingQueue
JAVA集合源码攻坚战(20)——BlockingQueue前言正文什么是BlockingQueue?介绍方法注意点前言好,接下来看BlockingQueue。正文什么是BlockingQueue?BlockingQueue就是阻塞队列,它是继承了Queue的一个接口,它在检索和插入元素时,如果条件不满足,会阻塞等待,直到满足条件,继续执行。BlockingQueue的结构Inter...原创 2018-11-06 17:24:36 · 202 阅读 · 0 评论 -
JAVA集合源码攻坚战(19)—— Deque
JAVA集合源码攻坚战(19)—— Deque前言正文什么是Deque?前言今天任务完成,继续学习源码~~正文什么是Deque?根据官方文档,Deque是一种两端都支持插入和移除操作的线性集合结构。Deque是“double ended queue”的缩写,发音同“deck”。双端队列不仅支持固定容量的,也支持不固定容量的。一般来说,双端队列的容量大小都是不固定的。java.uti...原创 2018-11-06 13:02:31 · 227 阅读 · 0 评论 -
JAVA集合源码攻坚战(16)—— NavigableSet
JAVA集合源码攻坚战(16)—— NavigableSet前言正文源码分析查找操作查找并移除操作迭代器获得子集操作前言NavigableSet是对SortedSet的一个增强实现,能够进行数据的匹配。具体我们看分析代码。正文java.util Interface NavigableSet<E>参数类型 E - 由此集合维护的元素的类型 All Superinterf...原创 2018-10-30 15:00:11 · 550 阅读 · 0 评论 -
JAVA集合源码攻坚战(15)—— SortedSet
JAVA集合源码攻坚战(14)—— SortedSet前言正文标准源码解析子集操作元素操作比较器前言前面我们已经分析了HashSet这一个分支,今天我们来分析SortedSet这个分支。正文前面的HashSet实现是无序的,而这条线上的SortedSet,顾名思义,是有序的set集合。java.util Interface SortedSet&amp;lt;E&amp;gt;参数类型 E - 由...原创 2018-10-30 10:37:26 · 550 阅读 · 0 评论 -
JAVA集合源码攻坚战(17)—— Queue
JAVA集合源码攻坚战(17)—— Queue前言正文源码解析前言本篇开始我们来分析Collection的最后一个主要分支——Queue队列。正文源码解析package java.util;/** * 设计用于在处理之前保留元素的集合。 * 除了基础的Collection操作,队列提供了额外的插入、提取和检查操作。 * 这些方法中的每个都支持两种形式: * 1、如果操作失败...原创 2018-10-31 17:23:49 · 358 阅读 · 0 评论 -
JAVA集合源码攻坚战(10)——Stack
JAVA集合源码攻坚战(10)——Stack前言正文前言上篇我们简单介绍了下Vector,没有细讲,因为Vector和ArrayList实在没有什么很大的区别,最主要的就是一个是否是同步,一个扩容机制的区别。然后我们这篇就干脆把这一条支线讲完,接下来就是Vector的一个子类,有名的栈Stack。栈Stack作为学习数据结构只是的一个必学知识点,他的知名度比父亲Vector可要大的多了,正所...原创 2018-10-24 12:13:48 · 187 阅读 · 0 评论 -
JAVA集合源码攻坚战(12)—— AbstractSet
JAVA集合源码攻坚战(12)—— AbstractSet前言正文实现的方法equals方法hashCode方法removeAll方法无参构造器前言上一篇对Set接口的方法做了个简单的介绍,主要需要注意的,就是Set是不支持重复元素,并且,无法用索引来获取对应元素。因为可以看到,声明的方法里没有根据位置信息来查找元素的。正文这里我们来介绍Set的一个抽象实现类AbstractSet。ja...原创 2018-10-26 17:32:20 · 236 阅读 · 0 评论 -
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 · 211 阅读 · 0 评论 -
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 · 183 阅读 · 0 评论 -
JAVA集合源码攻坚战(11)—— Set
JAVA集合源码攻坚战(11)—— Set前言正文前言好,今天开始学Set,你说为什么?没有为什么!!W( ̄_ ̄)W正文原创 2018-10-26 11:35:13 · 292 阅读 · 1 评论 -
JAVA集合源码攻坚战(9)—— Vector
JAVA集合源码攻坚战(9)—— Vector前言正文Vector前言上一篇博文已经讲到了AbstractSequentialList这个接口类,本来是想先看LinkedList的源码的,但是发现LinkedList实现了队列相关接口,所以这里还是先把list的其他部分讲完。正文Vector...原创 2018-10-22 16:36:54 · 251 阅读 · 0 评论 -
JAVA集合源码攻坚战(6)——AbstractList
前言前面我们已经分析过AbstractCollection和List这两个接口类了,接下来分析AbstractList。AbstractList的父母刚刚灵光一闪,想到一个不太恰当的比喻。比如AbstractList,继承了AbstractCollection,实现了List接口,那么AbstractCollection相当于是父亲,子承父业,List相当于母亲,百善孝为先,应该实现母亲的愿...原创 2018-10-10 18:00:46 · 219 阅读 · 0 评论 -
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 · 188 阅读 · 0 评论 -
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 · 218 阅读 · 1 评论 -
JAVA集合源码攻坚战(3)——Collection
前言集合作为java中一个重要的组成部分,必须攻克!什么是集合在我看来,从本质上来说,集合首先是一个容器,里面可以存放数据,不管是基本类型还是其他类型的数据。从作用上来说,集合又提供了一些方法,能对存放在里面的数据进行操作,增删查等等。什么是集合框架在java 2 之前,已经有许多类来存储和操作数据对象,但是没有一个统一的标准,使得使用不同的集合类有很大的不同,而为了解决这个问题,建立了...原创 2018-10-09 10:40:31 · 182 阅读 · 0 评论 -
JAVA集合源码攻坚战(8)——AbstractSequentialList
JAVA集合源码攻坚战(8)——AbstractSequentialList前言正文简介构造函数get操作set操作add操作remove操作addAll操作前言前面已经初步介绍过了Arraylist了,那么后面就应该讲讲经常会拿来和ArrayList进行对比的LinkedList吧,不过因为这之间还有个区别,因为LinkedList并不是直接继承了AbstractList的,中间还有个抽象类...原创 2018-10-12 14:34:27 · 238 阅读 · 0 评论 -
JAVA集合源码攻坚战(18)——AbstractQueue
JAVA集合源码攻坚战(18)——AbstractQueue前言正文前言正文原创 2018-11-05 10:08:32 · 269 阅读 · 0 评论