
Java 集合框架原理分析
文章平均质量分 94
了解 API 背后的设计与实现
拭心
我的新书《Android 性能优化入门与实战》上架了,快速提升技术实力,强烈推荐!!!
展开
-
Java 集合深入理解(12):古老的 Vector
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天刮台风,躲屋里看看 Vector ! 都说 Vector 是线程安全的 ArrayList,今天来根据源码看看是不是这么相似。什么是 VectorVector 和 ArrayList 一样,都是继承自 AbstractList。它是 Stack 的父类。英文的意思是 “矢量”。Ve原创 2016-10-23 12:03:05 · 9379 阅读 · 1 评论 -
Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
>点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 前面我们介绍了 哈希相关概念:哈希 哈希函数 冲突解决 哈希表,这篇文章我们来根据 JDK 1.8 源码,深入了解下使用频率很高的 HashMap 。读完本文你将了解到:点击查看 Java 集合框架深入理解 系列 - - 乾杯 什么是 HashMapHashMap 的特点HashMap 的 13 个成原创 2016-11-26 14:36:49 · 23164 阅读 · 19 评论 -
Java 集合深入理解(9):Queue 队列
什么是队列队列是数据结构中比较重要的一种类型,它支持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们生活中的排队类似。队列有两种:单队列循环队列单队列就是常见的队列, 每次添加元素时,都是添加到队尾:以数组实现的队列为例,初始时队列长度固定为 4,font 和 rear 均为 0:每添加一个元素,rear 后移一位。当添加四个元素后, rear 到了索引为 4 的位置:这时 a原创 2016-10-19 16:45:19 · 68657 阅读 · 22 评论 -
Java 集合深入理解(4):List<E> 接口
蓝瘦!香菇! 连着加班,一篇文章写了好几天,心好痛!在 Java 集合深入理解:Collection 中我们熟悉了 Java 集合框架的基本概念和优点,也了解了根接口之一的 Collection,这篇文章来加深 Collection 的子接口之一 List 的熟悉。List 接口一个 List 是一个元素有序的、可以重复、可以为 null 的集合(有时候我们也叫它“序列”)。Java 集合框架中原创 2016-10-13 01:34:49 · 70468 阅读 · 13 评论 -
Java 集合深入理解(11):LinkedList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情鱼肚白,来学学 LinkedList 吧!日常开发中,保存一组数据使用的最多的就是 ArrayList, 其次就是 LinkedList 了。我们知道 ArrayList 是以数组实现的,遍历时很快,但是插入、删除时都需要移动后面的元素,效率略差些。而LinkedList 是以链表实现的,插入、删除时只需要改原创 2016-10-20 20:15:34 · 32107 阅读 · 8 评论 -
Java 集合源码解析(2):ListIterator
ListIterator根据官方文档介绍, ListIterator 有以下功能:允许我们向前、向后两个方向遍历 List;在遍历时修改 List 的元素;遍历时获取迭代器当前游标所在位置。注意,迭代器 没有当前所在元素一说,它只有一个游标( cursor )的概念,这个游标总是在元素之间,比如这样:初始时它在第 0 个元素之前,调用 next() 游标后移一位:调用 previous()原创 2016-10-07 22:57:23 · 10897 阅读 · 4 评论 -
Java 集合深入理解(3):Collection
什么是集合?集合,或者叫容器,是一个包含多个元素的对象;集合可以对数据进行存储,检索,操作;它们可以把许多个体组织成一个整体: 比如一副扑克牌(许多牌组成的集合);比如一个电话本(许多姓名和号码的映射)。什么是集合框架?集合框架是一个代表、操作集合的统一架构。所有的集合框架都包含以下几点:接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象原创 2016-10-10 01:20:51 · 38117 阅读 · 8 评论 -
Java 集合深入理解(5):AbstractCollection
什么是 AbstractCollectionAbstractCollection 是 Java 集合框架中 Collection 接口 的一个直接实现类, Collection 下的大多数子类都继承 AbstractCollection ,比如 List, Set。 它实现了一些方法,也定义了几个抽象方法留给子类实现,因此它是一个抽象类。抽象方法public abstract Iterator<原创 2016-10-16 12:55:44 · 9804 阅读 · 8 评论 -
Java 集合深入理解(6):AbstractList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 AbstractListAbstractList 继承自 AbstractCollection 抽象类,实现了 List 接口 ,是 ArrayList 和 AbstractSequentiaList 的父类。它实现了 List 的一些位置相关操作(比如 get,set,add,remove),是第一个实现随机访问方原创 2016-10-16 23:07:45 · 14459 阅读 · 12 评论 -
Java 集合深入理解(7):ArrayList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 ArrayList ArrayList 是 Java 集合框架中 List接口 的一个实现类。可以说 ArrayList 是我们使用最多的 List 集合,它有以下特点:容量不固定,想放多少放多少(当然有最大阈值,但一般达不到)有序的(元素输出顺序与输入顺序一致)元素可以为 null效率高 size(),原创 2016-10-18 22:42:53 · 14149 阅读 · 9 评论 -
Java 集合深入理解(8):AbstractSequentialList
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~AbstractSequentialList 没有什么特别的,这里介绍是为了理解 LinkedList 更容易。什么是 AbstractSequentialList( Sequential 相继的,按次序的)AbstractSequentialList 继承自 AbstractList,是 LinkedList 的父类,是原创 2016-10-19 00:31:22 · 6027 阅读 · 2 评论 -
Java 集合深入理解(10):Deque 双端队列
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~什么是 DequeDeque 是 Double ended queue (双端队列) 的缩写,读音和 deck 一样,蛋壳。Deque 继承自 Queue,直接实现了它的有 LinkedList, ArayDeque, ConcurrentLinkedDeque 等。Deque 支持容量受限的双端队列,也支持大小不固定的。一原创 2016-10-19 23:54:13 · 22929 阅读 · 1 评论 -
Java 集合源码解析(1):Iterator
Java, Android 开发也有段时间了,当初为了早点学 Android,Java 匆匆了解个大概就结束了,基础不够扎实。 虽然集合框架经常用,但是一直没有仔细看看原理,仅止于会用,不知道为什么要这么做。 这段时间就开始 Java 集合的源码学习。Java 提供的 集合类都在 Java.utils 包下,其中包含了很多 List, Set, Map, Queue… 它们的关原创 2016-10-06 14:19:28 · 19049 阅读 · 11 评论 -
重温数据结构:哈希 哈希函数 哈希表
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 在学习 HashMap 前,我们先来温习下 Hash(哈希) 的概念。什么是 HashHash(哈希),又称“散列”。散列(hash)英文原意是“混杂”、“拼凑”、“重新表述”的意思。在某种程度上,散列是与排序相反的一种操作,排序是将集合中的元素按照某种方式比如字典顺序排列在一起,而散列通过计算哈希值,打破元素之间原原创 2016-10-27 00:49:30 · 19907 阅读 · 3 评论 -
Java 集合深入理解(15):AbstractMap
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天终于不下雨了,讨厌雨天。今天来了解下 AbstractMap。什么是 AbstractMapAbstractMap 是 Map 接口的的实现类之一,也是 HashMap, TreeMap, ConcurrentHashMap 等类的父类。AbstractMap 提供了 Map 的基本实现,使得我们以后要实现一个原创 2016-10-27 19:50:43 · 12401 阅读 · 3 评论 -
Java 集合深入理解(14):Map 概述
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 终于把 List 常用的几种容器介绍完了,接下来开始 Map 的相关介绍。什么是 MapJava 中的 Map 接口 是和 Collection 接口 同一等级的集合根接口,它 表示一个键值对 (key-value) 的映射。类似数学中 函数 的概念。数学中的函数:一个 Map 中,任意一个 key 都有唯一确定的原创 2016-10-26 00:20:59 · 10253 阅读 · 3 评论 -
Java 集合深入理解(13):Stack 栈
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天心情不错,再来一篇 Stack ! 数据结构中的 栈数据结构中,栈是一种线性数据结构,遵从 LIFO(后进先出)的操作顺序,所有操作都是在顶部进行有点像羽毛球筒:栈通常有三种操作:push 入栈pop 栈顶元素出栈,并返回peek 获取栈顶元素,并不删除我们自定义一个 栈 时只要实现上述三个主要操作原创 2016-10-23 13:25:32 · 6138 阅读 · 0 评论 -
Java 集合深入理解(17):HashMap 在 JDK 1.8 后新增的红黑树结构
点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 上篇文章我们介绍了 HashMap 的主要特点和关键方法源码解读,这篇文章我们介绍 HashMap 在 JDK1.8 新增树形化相关的内容。读完本文你将了解到:点击查看 Java 集合框架深入理解 系列 - - 乾杯 传统 HashMap 的缺点HashMap 在 JDK 18 中新增的数据结构 红黑树原创 2016-11-26 23:24:32 · 146299 阅读 · 18 评论