Java集合
文章平均质量分 92
Java集合总结
keep_trying_gogo
千万不要在最能吃苦的年纪选择安逸,与君共勉。
展开
-
Java集合类(一)概览
一非线程安全的集合ListSetMap总结二线程安全的集合List和SetMapQueue一、非线程安全的集合java集合的架构。主体内容包括Collection集合和Map类;而Collection集合又可以划分为List(队列)和Set(集合)。上面的图展示了整个集合大家族的成员以及他们之间的关系。下面就上面的各个接口、基类做一些简单的介绍(主要原创 2018-01-03 17:48:15 · 1045 阅读 · 0 评论 -
Java集合类(二)Vector
一Vector简介类定义主要构造函数二源码addremove一、Vector简介Vector可以实现可增长的对象数组。与数组一样,它包含可以使用整数索引进行访问的组件。不过,Vector的大小是可以增加或者减小的,以便适应创建Vector后进行添加或者删除操作。 Vector实现List接口,继承AbstractList类,所以我们可以将其看原创 2018-01-03 19:25:17 · 215 阅读 · 0 评论 -
Java集合类(三)ArrayList
一ArrayList概述二ArrayList源码分析1底层使用数组2构造函数3新增4删除5查找6扩容一、ArrayList概述ArrayList是实现List接口的动态数组,所谓动态就是它的大小是可变的。实现了所有可选列表操作,并允许包括 null 在内的所有元素。每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。默认初始容量原创 2018-01-03 19:59:34 · 290 阅读 · 0 评论 -
Java集合类(四)LinkedList
一概述二源码分析1定义2属性4增加方法5移除方法5查找方法一、概述LinkedList与ArrayList一样实现List接口,只是ArrayList是List接口的大小可变数组的实现,LinkedList是List接口链表的实现。基于链表实现的方式使得LinkedList在插入和删除时更优于ArrayList,而随机访问则比ArrayList逊色些。Linke原创 2018-01-03 20:16:51 · 226 阅读 · 0 评论 -
Java集合类(五)list总结
一List接口概述二使用场景三ArrayList与Vector区别一、List接口概述List接口,成为有序的Collection也就是序列。该接口可以对列表中的每一个元素的插入位置进行精确的控制,同时用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。 下图是List接口的框架图: 通过上面的框架图,可以对List的结构了然于心,其各个类、接口如下:Collection原创 2018-01-03 20:34:45 · 256 阅读 · 0 评论 -
Java集合类(六)Map
摘要Map集合简介摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。Map集合简介Java为数据结构中的映射定义了一个接口java原创 2018-01-04 11:13:39 · 359 阅读 · 0 评论 -
Java集合类(七)HashMap1.7
一定义二构造函数三数据结构四存储实现put五读取实现get一、定义HashMap实现了Map接口,继承AbstractMap。其中Map接口定义了键映射到值的规则,而AbstractMap类提供 Map 接口的骨干实现,以最大限度地减少实现此接口所需的工作,其实AbstractMap类已经实现了Map,这里标注Map LZ觉得应该是更加清晰吧!public clas原创 2018-01-04 11:28:22 · 465 阅读 · 0 评论 -
Java集合类(八)HashMap1.8
一、HashMap存储结构二、HashMap分析1. 确定哈希桶数组索引位置2. 分析HashMap的put方法3. 扩容机制1.7的扩容代码:1.8的扩容代码1.8的扩容优化4.线程安全性三、小结一、HashMap存储结构从结构实现来讲,HashMap是数组+链表+红黑树实现的,如下如所示。这里需要讲明白两个问题:数据底层具体存储的是什么...原创 2018-01-04 19:56:08 · 771 阅读 · 1 评论 -
Java集合类(九)HashTable
一定义二构造方法三主要方法四HashTable与HashMap的区别一、定义HashTable在Java中的定义如下:public class HashtableK,V> extends DictionaryK,V> implements MapK,V>, Cloneable, java.io.Serializable 从中可以看出Has原创 2018-01-05 09:54:19 · 292 阅读 · 0 评论 -
Java集合类(十)TreeMap
一红黑树简介二TreeMap数据结构三TreeMap put方法红黑树增加节点TreeMap put方法实现分析四TreeMap delete方法红黑树删除节点红黑树删除节点总结TreeMap deleteEntry方法实现分析TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解. 1、红黑树的基本概念。原创 2018-01-05 18:38:33 · 356 阅读 · 0 评论 -
Java集合类(十一)Map总结
一、Map总结二、区别三、面试面试时考官会问,两个使用相近类的异同,比如hashMap,hashTable。那我们总那几方面回答呢? 1.继承的类 2.底层使用的数据结构 3.线程安全性四、Map优化首先我们这样假设,假设哈希映射的内部数组的大小只有1,所有的元素都将映射该位置(0),从而构成一条较长的链表。由于我们更新、访问都要对这条链表进行线性搜索原创 2018-01-06 16:02:32 · 235 阅读 · 0 评论 -
Java集合类(十二)HashSet
一定义二方法三总结一、定义public class HashSetE> extends AbstractSetE> implements SetE>, Cloneable, java.io.Serializable HashSet继承AbstractSet类,实现Set、Cloneable、Serializable接口。其中AbstractSet提原创 2018-01-06 16:19:35 · 214 阅读 · 0 评论 -
Java集合类(十三)JUC中的集合概述
一概述二线程安全级别三绝对线程安全类一、概述我们在Java集合类(一)概览 里已经介绍了 非线程安全的集合(Vector、List、Set、Map),下面几篇文章将介绍线程安全的集合。可能有人会问hashTable,Vector不是线程安全的类吗?下面看一段代码:package demo.com.test.collection;import java.util.原创 2018-01-06 17:34:36 · 684 阅读 · 0 评论 -
Java集合类(十四)JUC中的集合--CopyOnWriteArrayList
一CopyOnWriteArrayList介绍二CopyOnWriteArrayList原理和数据结构三CopyOnWriteArrayList源码分析创建添加获取删除遍历一、CopyOnWriteArrayList介绍它相当于线程安全的ArrayList。和ArrayList一样,它是个可变数组;但是和ArrayList不同的时,它具有以下特性: 1. 它最适原创 2018-01-06 18:35:52 · 310 阅读 · 0 评论 -
Java集合类(十五)JUC中的集合--CopyOnWriteArraySet
一CopyOnWriteArraySet介绍二CopyOnWriteArraySet原理和数据结构三CopyOnWriteArraySet函数列表四CopyOnWriteArraySet源码一、CopyOnWriteArraySet介绍它是线程安全的无序的集合,可以将它理解成线程安全的HashSet。有意思的是,CopyOnWriteArraySet和HashSet虽然都继原创 2018-01-08 11:19:11 · 456 阅读 · 0 评论 -
Java集合类(十六)JUC中的集合--ConcurrentHashMap jdk1.7
一ConcurrentHashMap介绍二ConcurrentHashMap原理和数据结构三锁分段简介四ConcurrentHashMap函数列表五ConcurrentHashMap源码分析a构造函数b获取get读取的线程安全性c增加put扩容rehashd删除deletee获取size六总结一、ConcurrentHashMap介绍Conc原创 2018-01-08 15:25:29 · 389 阅读 · 0 评论 -
Java集合类(十七)JUC中的集合--ConcurrentHashMap jdk1.8
一ConcurrentHashMap8简介二ConcurrentHashMap8基本属性三ConcurrentHashMap8数据结构四ConcurrentHashMap8内部类NodeTreeNodeTreeBinForwardingNode五Unsafe与CASunsafe静态块三个核心方法六扩容方法 transfer单线程扩容多线程扩容七Put方法a原创 2018-01-08 20:15:30 · 725 阅读 · 0 评论 -
Java集合类(十八)JUC中的集合--ConcurrentSkipListMap
一ConcurrentSkipListMap介绍二ConcurrentSkipListMap原理和数据结构三ConcurrentSkipListMap函数列表四ConcurrentSkipListMap源码分析添加删除获取一、ConcurrentSkipListMap介绍ConcurrentSkipListMap是线程安全的有序的哈希表,适用于高并发的场景。转载 2018-01-10 10:27:53 · 293 阅读 · 0 评论