![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java 集合
文章平均质量分 70
oxf
纵有疾风起,人生不言弃
展开
-
06.Java 集合 - HashMap
基本概念首先来看它的继承结构:再来看看它的结构图,HashMap 是基于哈希表(hash table)实现的map。而哈希表的组成是一个数组,而数组的元素是则单向链表的首节点。HashMap的一些特点:线程非安全,并且允许key与value都为null值,HashTable与之相反。不保证其内部元素的顺序,而且随着时间的推移,同一元素的位置也可能改变(resize的情况) put、get操作的原创 2016-06-21 23:04:56 · 405 阅读 · 0 评论 -
05.Java 集合 - LinkedList
基本概念在探究 LinkedList 之前首先要明白一个词:链表。概念:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。结构:由一系列节点组成,节点包括值域和指针域两个部分,其中值域用来存储数据元素的值,指针域用来存储上(下)一个节点的地址。特点:链表查找和修改相应的时间复杂度分别是 O(n)、O(1) 。类型:链表有单链表和双链表之分,原创 2016-04-10 20:52:30 · 426 阅读 · 0 评论 -
10.Java 集合 - WeakHashMap
基本概念首先来看它的继承关系: WeakHashMap 是以弱键实现的基于哈希表的 Map。在 WeakHashMap 中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的 Map 实现有所不同。 需要注意的地方:nu原创 2016-06-30 22:25:32 · 757 阅读 · 2 评论 -
07.Java 集合 - HashTable
基本概念1.结构首先来看它的继承结构:再来看看它的结构图,HashTable 是基于哈希表(hash table)实现的map。而哈希表的组成是一个数组,而数组的元素是则单向链表的首节点。2.特点线程安全,并且不允许 key 或 value 为 null 。与 HasMap 的底层结构相同,不同的是:HashMap 允许 key,value 为 null;HashMap 的初始容量必须为 2 的原创 2016-06-22 22:02:42 · 420 阅读 · 0 评论 -
08.Java 集合 - HashSet
基本概念HashSet 由哈希表(实际上是一个 HashMap 实例)支持。具体的特性与 HashMap。继承结构如下:源码分析类结构图如下1.构造函数构造函数 ①~⑤分别调用 HashMap 中对应的构造函数来实现。private transient HashMap<E, Object> map;// ①public HashSet() { map = new HashMap<E, Ob原创 2016-06-22 22:28:10 · 356 阅读 · 0 评论 -
04.Java 集合 - Stack
基本概念首先来看结构图:栈是一种先进后出的线性表,只要符合先进后出的原则的线性表都是栈。Stack 继承自 Vector ,所以是它的所有操作也是线程安全的。源码分析// 构造函数public Stack() {}// 入栈,即在列表末尾插入指定元素public E push(E item) { // 调用 Vector 方法 addElement(item); ret原创 2016-06-23 22:34:43 · 288 阅读 · 0 评论 -
03.Java 集合 - Vector
基本概念首先来看它结构图Vector 类可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。 但是,Vector 的大小可以根据需要增大或缩小,以适应创建 Vector 后进行添加或移除项的操作。与 ArrayList 的区别:Vector 的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步原创 2016-06-23 22:27:00 · 358 阅读 · 0 评论 -
01.Java 集合 - 概述
基本概念首先来看一张类集框架图:这里我们来分析几个接口,几乎所有的类都实现了它们。Colleciton,称为集合,是单值存放的最大父接口,它的子接口有 List,Set。List,称为列表,可以存放重复的内容。它的主要实现类有: ArrayList,LinkedList,Vector,Stack。Set,称为集,不能存放重复的内容,它的主要实现类有:HashSet,LinkedHashSet,原创 2016-06-19 17:13:55 · 362 阅读 · 0 评论 -
02.Java 集合 - ArrayList
基本概念在分析 ArrayList 前,需要明白几个词的概念:线性表、数组。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式:一种是顺序存储结构另一种是链式存储结构数组,是一种典型的顺序存储结构。具有以下特点:是物理存储连续、逻辑存储连续的顺序表。利于查询。这种存原创 2016-04-10 09:46:28 · 499 阅读 · 0 评论 -
09.Java 集合 - LinkedHashMap
基本概念首先来看它继承关系:再来看看它的数据结构:LinkedHahMap 同 HashMap 一样,底层结构也采用了哈希表的形式。不同的是在 HashMap 中采用的是【数组+单向链表】的形式,而这里采用的是【数组+循环双链表】的形式。因此存放在 LinkedHashMap 中每个元素都被装进了循环双链表的节点中。关于循环双链表如下图所示:循环双链表由【值域+指针域】构成,指针又分为前指针,指向原创 2016-06-27 23:29:23 · 600 阅读 · 0 评论