Java 集合系列
文章平均质量分 92
weixin_42073629
这个作者很懒,什么都没留下…
展开
-
HashMap 夺命二十一问
1:HashMap 的数据结构?A:哈希表结构(链表散列:数组+链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transientNode<K,V>\[\]table;2:HashMap 的工作原理?HashMap 底层是 hash 数组和单向链表实现,数组中的每个元素都是链表,由 Node 内部类(实现 Map.Entry接口)实现,HashMap 通过 put & get 方法存储和获取。存储对象时,将 K/V 键值传给 put..原创 2021-03-26 04:17:08 · 84 阅读 · 0 评论 -
Java 集合系列18之 Iterator和Enumeration比较
概要这一章,我们对Iterator和Enumeration进行比较学习。第1部分 Iterator和Enumeration区别在Java集合中,我们通常都通过 “Iterator(迭代器)” 或 “Enumeration(枚举类)” 去遍历集合。今天,我们就一起学习一下它们之间到底有什么区别。我们先看看 Enumeration.java 和 Iterator.java的源码,再说它...原创 2019-10-09 01:41:36 · 108 阅读 · 0 评论 -
Java 集合系列17之 TreeSet详细介绍(源码解析)和使用示例
概要这一章,我们对TreeSet进行学习。我们先对TreeSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeSet。第1部分 TreeSet介绍TreeSet简介TreeSet 是一个有序的集合,它的作用是提供有序的Set集合。它继承于AbstractSet抽象类,实现了NavigableSet<E>, Cloneable, java.io.Se...原创 2019-10-09 01:38:37 · 107 阅读 · 0 评论 -
Java 集合系列16之 HashSet详细介绍(源码解析)和使用示例
概要这一章,我们对HashSet进行学习。我们先对HashSet有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashSet。第1部分 HashSet介绍HashSet 简介HashSet 是一个没有重复元素的集合。它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。HashSet是非同步的。如果多个线程同时访问一个哈希 se...原创 2019-10-09 01:28:32 · 121 阅读 · 0 评论 -
Java 集合系列15之 Set架构
前面,我们已经系统的对List和Map进行了学习。接下来,我们开始可以学习Set。相信经过Map的了解之后,学习Set会容易很多。毕竟,Set的实现类都是基于Map来实现的(HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Set架构。(01) Set 是继承于Collection的接口。它是一个不允许有重复元素的集合。(02)...原创 2019-10-09 01:18:47 · 114 阅读 · 0 评论 -
Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
概要学完了Map的全部内容,我们再回头开开Map的框架图。第1部分 Map概括(01) Map 是“键值对”映射的抽象接口。(02) AbstractMap 实现了Map中的绝大部分函数接口。它减少了“Map的实现类”的重复编码。(03) SortedMap 有序的“键值对”映射接口。(04) NavigableMap 是继承于SortedMap的,支持导航函数的接口。(0...原创 2019-10-08 22:57:02 · 100 阅读 · 0 评论 -
Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
概要这一章,我们对WeakHashMap进行学习。我们先对WeakHashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用WeakHashMap。第1部分 WeakHashMap介绍WeakHashMap简介 WeakHashMap 继承于AbstractMap,实现了Map接口。 和HashMap一样,WeakHashMap 也是一个散列表,它存储...原创 2019-10-08 22:45:24 · 144 阅读 · 0 评论 -
Java 集合系列12之 TreeMap详细介绍(源码解析)和使用示例
概要这一章,我们对TreeMap进行学习。我们先对TreeMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用TreeMap。第1部分 TreeMap介绍TreeMap 简介TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即一个key-value集合。TreeMap 实现...原创 2019-10-08 01:51:07 · 155 阅读 · 0 评论 -
Java 集合系列11之 Hashtable详细介绍(源码解析)和使用示例
概要前一章,我们学习了HashMap。这一章,我们对Hashtable进行学习。我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable。第1部分 Hashtable介绍Hashtable 简介和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射。Hashtable继承于Dict...原创 2019-10-08 01:20:26 · 817 阅读 · 0 评论 -
Java 集合系列10之 HashMap详细介绍(源码解析)和使用示例
概要这一章,我们对HashMap进行学习。我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap。第1部分 HashMap介绍HashMap简介HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 继承于AbstractMap,实现了Map、Cloneable、java.io.Serializabl...原创 2019-10-08 01:01:45 · 121 阅读 · 0 评论 -
Java 集合系列09之 Map架构
概要前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)。首先,我们看看Map架构。如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。(02) AbstractMap 是继承于M...原创 2019-10-08 00:41:41 · 89 阅读 · 0 评论 -
Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
概要前面,我们学完了List的全部内容(ArrayList,LinkedList,Vector,Stack)。现在,我们再回头看看总结一下List。第1部分 List概括先回顾一下List的框架图(01)List 是一个接口,它继承于Collection的接口。它代表着有序的队列。(02) AbstractList 是一个抽象类,它继承于AbstractColle...原创 2019-10-08 00:32:48 · 108 阅读 · 0 评论 -
Java 集合系列07之 Stack详细介绍(源码解析)和使用示例
概要学完Vector了之后,接下来我们开始学习Stack。Stack很简单,它继承于Vector。学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。第1部分 Stack介绍Stack简介Stack是栈。它的特性是:先进后出(FILO, First In Last Out)。java工具包中的Stack是继承于Vector(矢量队...原创 2019-10-08 00:18:39 · 114 阅读 · 0 评论 -
Java 集合系列06之 Vector详细介绍(源码解析)和使用示例
概要学完ArrayList和LinkedList之后,我们接着学习Vector。学习方式还是和之前一样,先对Vector有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。第1部分 Vector介绍Vector简介Vector 是矢量队列,它是JDK1.0版本添加的类。继承于AbstractList,实现了List, RandomAccess, Cloneable这些接口...原创 2019-10-08 00:10:58 · 215 阅读 · 0 评论 -
Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例
概要前面,我们已经学习了ArrayList,并了解了fail-fast机制。这一章我们接着学习List的实现类——LinkedList。和学习ArrayList一样,接下来呢,我们先对LinkedList有个整体认识,然后再学习它的源码;最后再通过实例来学会使用LinkedList。第1部分 LinkedList介绍LinkedList简介LinkedList是一个继承于Ab...原创 2019-10-08 00:00:15 · 102 阅读 · 0 评论 -
Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)
概要前面,我们已经学习了ArrayList。接下来,我们以ArrayList为例,对Iterator的fail-fast机制进行了解。1 fail-fast简介fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合...原创 2019-10-07 23:50:03 · 93 阅读 · 0 评论 -
Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例
概要上一章,我们学习了Collection的架构。这一章开始,我们对Collection的具体实现类进行讲解;首先,讲解List,而List中ArrayList又最为常用。因此,本章我们讲解ArrayList。先对ArrayList有个整体认识,再学习它的源码,最后再通过例子来学习如何使用它。第1部分 ArrayList介绍ArrayList简介ArrayList 是一个数组队列,...原创 2019-10-07 23:36:59 · 105 阅读 · 0 评论 -
Java 集合系列02之 Collection架构
概要首先,我们对Collection进行说明。下面先看看Collection的一些框架类的关系图:Collection是一个接口,它主要的两个分支是:List和Set。List和Set都是接口,它们继承于Collection。List是有序的队列,List中可以有重复的元素;而Set是数学概念中的集合,Set中没有重复元素!List和Set都有它们各自的实现类。为了方...原创 2019-10-07 23:21:55 · 91 阅读 · 0 评论 -
Java 集合系列01之 总体框架
Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.*Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections)、。Java集合工具包框架图(如下):大致说明:看上面的框架图,先抓住...原创 2019-10-07 22:44:33 · 124 阅读 · 0 评论
分享