Java集合框架
框架学习必不可少
菜鸟皖皖
目前在读大学生,如果你恰好看到我,可以关注我博客和公众号,我们一起学习,一起进步!
展开
-
java集合框架小结
Java集合框架(一):大纲Java集合框架(二):整体概览Java集合框架(三):Collection 源码分析Java集合框架(四):Iterator 源码分析Java集合框架(五):ListIterator 源码分析JavaJava集合框架(六):Set 源码分析Java集合框架(七):SortedSet 源码分析Java集合框架(八):List 源码分析Java集合框架(九...原创 2020-05-06 11:59:46 · 227 阅读 · 0 评论 -
Java集合框架(二十一):HashTable 源码分析
1、HashTable 简介和 HashMap 一样,Hashtable 也是一个散列表。从Java 1.2开始,这个类被改进以实现Map接口,使其成为Java Collections Framework的成员。 与新的集合实现不同,Hashtable是同步的。 如果不需要线程安全实现,建议使用HashMap代替Hashtable。 如果需要线程安全的高度并发实现,那么建议使用Concurren...原创 2020-05-06 19:23:25 · 281 阅读 · 0 评论 -
Java集合框架(二十):TreeMap 源码解析
1、TreeMap 简介TreeMap 使用红黑树存储元素,可以保证元素按key值的大小进行遍历。TreeMap底层是基于红黑树(Red-Black tree)实现,所以在学习TreeMap之前我们我们有必要先了解一下红黑树。由于 TreeMap 底层采用一棵“红黑树”来保存集合中的 Entry,这意味 TreeMap 添加元素、取出元素的效率都比 HashMap 低:????当向 TreeMap...原创 2020-05-06 19:13:06 · 295 阅读 · 0 评论 -
Java集合框架(十九):LinkedHashMap 源码分析
1、LinkedHashMap 简介HashMap 是无序的,HashMap 在 put 的时候是根据 key 的 hashcode 进行 hash 然后放入对应的位置。所以在按照一定顺序 put 进 HashMap 中后,再次遍历出 HashMap 的顺序跟 put 的顺序不同(除非在 put 的时候 key 已经按照 hashcode 排好序了)。JAVA 在 JDK1.4 以后提供了 L...原创 2020-05-06 11:56:10 · 317 阅读 · 0 评论 -
Java集合框架(十八):HashMap 源码分析
HashMap简述HashMap是工作中最常用的集合工具之一,在整个集合框架中也是很重要的一部分,因此本篇文章主要讲述它的底层实现原理,因为jdk1.8中对HashMap的数据结构有了修改,所以本篇将会分别讲解jdk1.7和jdk1.8中HashMap的区别,通过对比学习来加深对HashMap的理解jdk1.8之前HashMap采用【数组+链表】实现,使用链表处理hash冲突,同一个hash值...原创 2020-05-06 11:54:40 · 215 阅读 · 0 评论 -
Java集合框架(十七):LinkedList 源码分析
LinkedList 简述????Java LinkedList是List和Deque接口的实现。????在内部,LinkedList 是采用双向链表实现的,它包含一个很重要的内部类 Node。Node是双向链表节点所对应的数据结构,它包括的属性有:当前节点所包含的值,上一个节点,下一个节点。????它支持重复元素,并且可以添加任意数量的null元素。????它以插入顺序存储或维护它的元素。????它不是线程安全的,...原创 2020-05-06 11:53:01 · 273 阅读 · 0 评论 -
Java集合框架(十六):ArrayList 源码分析
1、ArrayList 简述Java ArrayList是List接口的可调整大小的数组实现,这意味着它以默认大小开始,并在将更多数据添加到数组列表时自动扩容。 除了实现List接口之外,此类还提供了一些方法来操作内部用于存储列表的数组的大小。ArrayList不是线程安全的,多线程环境下可以考虑用 List list = Collections.synchronizedList(new Ar...原创 2020-05-06 11:51:34 · 300 阅读 · 0 评论 -
Java集合框架(十五):TreeSet 源码分析
1、TreeSet 简述????TreeSet是基于TreeMap作为存储的可排序、可去重的有序集合????继承于AbstractSet,AbstractSet实现了equals和hashcode方法????实现了NavigableSet接口,意味着它支持一系列的导航方法,比如查找与指定目标最匹配项????实现了Cloneable接口,意味着它能被复制????实现了java.io.Serializable接口,意味着...原创 2020-05-06 11:41:06 · 291 阅读 · 0 评论 -
Java集合框架(十四):LinkedHashSet 源码分析
1、LinkedHashSet 简述LinkedHashSet底层使用 LinkedHashMap 来保存所有元素,它继承自 HashSet,其所有的方法操作上又与 HashSet 相同,因此 LinkedHashSet 的实现上非常简单,只提供了四个构造方法,并通过传递一个标识参数,调用父类的构造器,底层构造一个 LinkedHashMap 来实现,在相关操作上与父类 HashSet 的操作相...原创 2020-05-06 11:37:08 · 260 阅读 · 0 评论 -
Java集合框架(十三):HashSet 源码分析
1、简述HashSet继承于AbstractSet,实现接口Set,内部使用HashMap来存储数据,数据存储在HashMap的key中,value只是同一个默认值,所以HashSet存储的值是不能重复的。2、HashSet实现2、HashSet实现HashSet几乎实现了Set接口中的所有方法,在此我们不对每一个方法进行介绍,只介绍一部分重要方法和属性。首先我们看一下HashSet的构造方...原创 2020-05-06 11:09:08 · 210 阅读 · 0 评论 -
Java集合框架(十二):SortedMap 源码分析
1、SortedMap 简述SortedMap 接口扩展了 Map 接口并提供了有序的Map实现,SortedMap 的排序方式有两种:根据键值的自然顺序排序和指定比较器(Comparator)排序。插入有序的 SortedMap 的所有元素都必须实现Comparable接口所有通用的有序映射实现类都应该提供四个“标准”构造函数:????一个void(无参数)构造函数,它根据键的自然顺序创建一个空...原创 2020-05-06 11:07:22 · 456 阅读 · 0 评论 -
Java集合框架(十一):Map 源码分析
1、Map 简述java.util.Map 接口表示键和值之间的映射对象。Map接口不是Collection接口的子类型。因此它的行为与其他集合类型略有不同。Map接口取代了传统的 Dictionary类,它是一个完全抽象的类而不是接口。Map 接口具有以下几个特征:????Map提供了三个集合视图,键集,键值映射集和值集合。????Map 不能包含重复的键,每个键最多可以映射一个值。一些实现允许nu...原创 2020-05-06 11:05:59 · 271 阅读 · 0 评论 -
Java集合框架(十):Deque 源码分析
1、Deque 简述线性集合,支持两端插入和移除元素。名称deque是“双端队列(double ended queue)”的缩写,通常发音为“deck”。大多数Deque实现对它们可能包含的元素数量没有固定限制,但是此接口支持容量限制的deques以及没有固定大小限制的deques。此接口定义了访问双端队列两端元素的方法,提供了插入,移除和检索元素的方法。这些方法中的每一种都以两种形式存在:一...原创 2020-05-06 11:04:46 · 289 阅读 · 0 评论 -
Java集合框架(九):Queue 源码分析
1、Queue 简述1、Queue 简述队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。Java Queue是java.util包中提供的接口,并扩展了java.util.Collection接口。就像Java List一样,Java Queue是有序...原创 2020-05-06 11:03:25 · 277 阅读 · 0 评论 -
Java集合框架(八):List 源码分析
1、List 简述Java.util.List 是 Collection 的子接口。它是一个有序集合,可以存储重复的值。由于List保留可插入元素的位置的控制,因此它可以按索引访问元素,也可以搜索列表中的元素。关于Java List的一些重要特点有:????Java List 接口是 Java Collections Framework 的成员。????List 允许添加重复元素。????List允许拥有...原创 2020-05-06 11:01:12 · 186 阅读 · 0 评论 -
Java集合框架(七):SortedSet 源码分析
1、SortedSet 简述SortedSet 接口扩展了 Set 接口并提供了元素的排序功能。插入到有序集中的所有元素必须实现Comparable接口(或者被指定的Comparator接受),并且所有这些元素必须是可相互比较的,比如:e1.compareTo(e2)(或 comparator.compare(e1, e2))对于有序集合中的任意元素 e1 和 e2 都不能抛出 ClassCa...原创 2020-05-06 10:59:30 · 375 阅读 · 0 评论 -
Java集合框架(六):Set 源码分析
1、Set 简述Java Set 是一个不包含重复元素的集合。它继承于 Collection 接口。 它有以下特点:????与List不同,Java Set不是有序集合,它的元素没有特定的顺序。????Java Set不提供对插入元素的位置的控制。????它不能通过索引访问元素,但是可以搜索列表中的元素。????Set允许最多仅添加一个null元素。????Set接口在Java 8中有一个默认方法:splitera...原创 2020-05-06 10:58:17 · 263 阅读 · 0 评论 -
Java集合框架(五):ListIterator 源码
1、ListIterator 接口简述在Java中,ListIterator 是Collection API中的一个接口。 它扩展了Iterator接口。它是一个双向迭代器。 为了支持前向和后向迭代和CRUD操作,它具有以下方法。 我们可以将这个Iterator用于所有List实现的类,如ArrayList,CopyOnWriteArrayList,LinkedList,Stack,Vector...原创 2020-05-06 10:54:21 · 415 阅读 · 0 评论 -
Java集合框架(四):Iterator 源码分析
1、Java Iterator 简述Iterator迭代器的定义:迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF给出的定义是,提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器通常被称为“轻量级”对象,因为创建它的代价小。在Java中,Iterator是 java.util 包中** Collection** 框架中的接口...原创 2020-05-06 10:52:39 · 269 阅读 · 0 评论 -
Java集合框架(三):Collection 源码分析
前言:本文我们主要学习Java集合框架的根接口Collection,通过本文我们可以进一步了解Collection的属性及提供的方法。在介绍Collection接口之前我们不得不先学习一下Iterable,因为Collection接口继承了它。Collection接口类图从类图中我们看到Collection接口继承了Iterable接口Iterable源码分析由类图我们可以发现,Ite...原创 2020-05-06 10:50:57 · 195 阅读 · 0 评论 -
Java集合框架(二):整体概览
Java集合框架简述Java中的集合类是一种工具类,就像是容器,存储任意数量的具有共同属性的对象,集合框架是一个用来代表和操纵集合的统一架构,包含如下部分:1、接口:接口是代表集合的抽象数据类型,接口允许集合独立操纵其代表的细节。java.util.Collection是集合框架的顶级接口,它包含了一些重要的方法,比如:size(), iterator(), add(), remove(),...原创 2020-05-06 10:48:27 · 272 阅读 · 0 评论 -
Java集合框架(一):大纲
Java集合框架(一):大纲Java集合框架(二):整体概览Java集合框架(三):Collection 源码分析Java集合框架(四):Iterator 源码分析Java集合框架(五):ListIterator 源码分析JavaJava集合框架(六):Set 源码分析Java集合框架(七):SortedSet 源码分析Java集合框架(八):List 源码分析Java集合框架(九...原创 2020-05-05 18:52:31 · 325 阅读 · 0 评论