java集合
pocher
Your thought is the parent which gives birth to all things
展开
-
02-Java集合-Collection架构
概要首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图:Collection是一个接口,它主要的两个分支是:List和Set。List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类。为了方...原创 2019-04-10 11:20:06 · 153 阅读 · 0 评论 -
12-Java集合-TreeMap详解
第1部分 TreeMap介绍TreeMap 简介TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap 实现了Cloneable接口,意...原创 2019-04-11 18:29:40 · 575 阅读 · 0 评论 -
13-Java集合-WeakHashMap详解
第1部分 WeakHashMap介绍WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null。 不过WeakHashMap的键是“弱键”。在 WeakHashMap 中,当某个键不再正常使...原创 2019-04-11 18:33:28 · 459 阅读 · 0 评论 -
14-Java集合-Map总结
概要学完了Map的全部内容,我们再回头开开Map的框架图。第1部分 Map概括(01) Map 是“键值对”映射的抽象接口。(02) AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。(03) SortedMap 有序的“键值对”映射接口。(04) NavigableMap 是继承于SortedMap的,支持导航函数的接口。(0...原创 2019-04-11 18:42:25 · 227 阅读 · 0 评论 -
16-Java集合-HashSet详解
第1部分 HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 set,而其中至少一个线程修改了该 set,那么它必须 保持外部同步。这通常是通过对自然封装该 set 的对象执行同步操作来完成的。如果不存在这样的对象...原创 2019-04-12 11:19:23 · 534 阅读 · 0 评论 -
17-Java集合-TreeSet详解
第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Serializable接口。TreeSet 继承于AbstractSet,所以它是一个Set集合,具有Set的属性和方法。TreeSet 实现了N...原创 2019-04-12 11:32:02 · 1716 阅读 · 0 评论 -
18-Java集合-Iterator和Enumeration区别
第1部分 Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它们的区别。Enumeration是一个接口,它的源码如下:packag...原创 2019-04-12 11:37:12 · 202 阅读 · 0 评论 -
ConcurrentHashMap详解
HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和1.8的区别。内容目录:1.哈希表2.ConcurrentHashMap与HashMap、HashTable的区...原创 2019-04-09 14:19:24 · 1116 阅读 · 0 评论 -
HashMap详解
第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的...原创 2019-04-09 18:42:34 · 152 阅读 · 0 评论 -
11-Java集合-Hashtable详解
第1部分 Hashtable介绍Hashtable 简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dictionary,实现了Map、Cloneable、java.io.Serializable接口。Hashtable 的函数都是同步的,这意味着它是线程安全的。它的key、value都不可以为nu...原创 2019-04-11 15:57:09 · 367 阅读 · 0 评论 -
10-Java集合-HashMap详解
第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的...原创 2019-04-11 15:56:04 · 167 阅读 · 0 评论 -
03-Java集合- ArrayList详解
第1部分 ArrayList介绍ArrayList简介ArrayList 是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList继承了AbstractList,实现了List。它是一个数组队列...原创 2019-04-10 17:16:58 · 176 阅读 · 0 评论 -
04-Java集合- ArrayList快速失败分析(fail-fast)
1 fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所改变了;那么线程A访问集合时,就会抛出ConcurrentModificationException异常,产生fail-fa...原创 2019-04-10 18:04:35 · 1270 阅读 · 0 评论 -
05-Java集合-LinkedList详解
第1部分 LinkedList介绍LinkedList简介LinkedList是一个继承于AbstractSequentialList的双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList实现List接口,能对它进行队列操作。LinkedList实现Deque接口,即能将LinkedList当作双端队列使用。LinkedList实现了Clonea...原创 2019-04-10 18:58:48 · 334 阅读 · 0 评论 -
06-Java集合-Vector详解
第1部分 Vector介绍Vector简介Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口。Vector 继承了AbstractList,实现了List;所以,它是一个队列,支持相关的添加、删除、修改、遍历等功能。Vector 实现了RandmoAccess接口,即提供了随机...原创 2019-04-10 22:22:52 · 472 阅读 · 0 评论 -
07-Java集合-Stack详解
第1部分 Stack介绍Stack简介Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这就意味着,Stack也是通过数组实现的,而非链表。当然,我们也可以将LinkedList当作栈来使用!在“Java 集合系列06之 Vector详细介绍(源码解析...原创 2019-04-10 22:32:23 · 177 阅读 · 0 评论 -
08-Java集合-List总结
第1部分 List概括先回顾一下List的框架图(01)List 是一个接口,它继承于Collection的接口。它代表着有序的队列。(02) AbstractList 是一个抽象类,它继承于AbstractCollection。AbstractList实现List接口中除size()、get(int location)之外的函数。(03) AbstractSequentialL...原创 2019-04-11 11:29:09 · 191 阅读 · 0 评论 -
09-Java集合-Map架构
概要前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Map架构。如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。(02) AbstractMap 是继承于M...原创 2019-04-11 14:11:11 · 134 阅读 · 0 评论 -
01-Java集合-整体概述
Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。Java集合工具包框架图(如下):大致说明:看上面的框架图,先抓住...原创 2019-04-10 09:53:59 · 147 阅读 · 0 评论