一目了然了解JAVA集合体系】的更多相关文章

在编程中,常常需要集中存放多个数据.从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量.一旦在数组初始化时指定了这个数组长度,这个数组长度就是不可变的,如果我们需要保存一个可以动态增长的数据(在编译时无法确定具体的数量),java的集合类就是一个很好的设计方案了. 集合类主要负责保存.盛装其他数据,因此集合类也被称为容器类.所以的集合类都位于java.util包下,后来为了处理多线程环境下的并发安全问题,java5还在java.util.concurr…
一.集合框架 集合是容纳数据的容器,java常用的集合体系图如下.以集合中是否运行重复元素来分,主要有List和Set接口,List集合中可以有重复元素,Set集合集合中的元素不可重复,Iterator和List Iterator是遍历集合的2个迭代器,Map是存储Key/Value键值对的容器. java集合体系图 二.迭代器 迭代器的用法写在后面,这里说明Iterator和ListIterator的区别: Iterator在遍历一个集合的过程中不能修改集合中的对象,ListIterator可…
JAVA的集合体系是个庞大的知识体系,里面涵盖了,如数组结构,链表,红黑树,排序算法,线程安全等等知识点,接下来将会使用一系列的分享文章整理自己的学习心得,留的温故而知新.下图是整理出来的JAVA集合体系的图谱,也查看了其他分享的图谱,有些出入,但是这些事我看源码整理出来的,以偏概全吧,后续发现有不对的地方在及时修改,也欢迎各位读者及时指正,互相探讨.…
一.前言 1. 该关系图是本人根据JDK1.8 源码整理所得,只整理了常用的.常见的集合,并非全部. 2. 整理逻辑: Collection接口下有两个子接口:List 和 Set 接口. Map是独立的一个接口. 有关各类集合的特点,图中只是给出了总结,并未从底层数据结构去分析,后面有时间我会再写一篇常用集合底层数据结构分析的博文. 3.对关系图的解释说明: ①从左往右各个接口/实现类之间的关系:左边的节点被右边的节点所实现/继承: ②虚线:虚线起点的类实现了虚线箭头指向的接口. ③集合的三大…
Collection接口: 1.单列集合类的根接口. 2.定义了可用于操作List.Set的方法--增删改查: 3.继承自Iterable<E>接口,该接口中提供了iterator() 方法:返回一个在一组 T 类型的元素上进行迭代的迭代器,使其具有使用foreach语句迭代的特权. List接口: 1.元素可重复. 2.元素有序:元素的存入顺序和取出顺序一致. 3.所有元素是以一种线性方式进行存储,在程序中可以通过索引来访问集合中的指定元素. 4.所有的List中可以有null元素. Arr…
集合加载因子 https://blog.csdn.net/qq_34627002/article/details/79769261 底层原理: https://blog.csdn.net/qq_25868207/article/details/55259978…
I. 第一部分:常见数据结构 首先简单说下数据结构. 什么是数据结构?数据结构就是组织数据的方式. 常见的数据结构:栈,堆,树,图,数组,队列,链表. 这里主要介绍与java集合体系相关的栈.数组和链表. 栈 特点:压栈弹栈,先进后出. 如:手枪弹夹装弹过程,最先压入的子弹在最下面:而在射击时,最先弹入枪膛的是最上面的子弹,即最后压入弹夹的子弹. 队列 特点:先进先出. 如:子弹射出的过程,先进入枪膛的子弹最先被射出. 数组 概述:用来存储同一种类型元素的容器. 特点:在内存中是连续的,每个元素…
一.概述 集合是 Java 中非常重要的 API,在实际应用中非常广泛,在许多面试中也是必考的知识点. Java 所有集合类都位于 java.util 包下,Java 的集合只能保存对象,而无法保存保存基本数据类型.当你尝试把一个基本数据类型存入集合中时,Java 会将其自动转为对应的对象类型(这就是自动装箱).而当我们把一个对象放入集合中后,系统会把所有集合元素都当成 Object 类的实例进行处理.但从JDK1.5以后,这种状态得到了改进:可以使用泛型来限制集合里元素的类型,并让集合记住所有…
好,首先我们根据这张集合体系图来慢慢分析.大到顶层接口,小到具体实现类. 首先,我想说为什么要用集合?简单的说:数组长度固定,且是同种数据类型.不能满足需求.所以我们引入集合(容器)来存储任意数据类型的可变大小的数据. 来了解下数组: 数组有静态.动态之分.但是其长度都是固定的,并且其内部只能存储同一种数据类型的数据.除非是Object类型的数组,它可以存储任意类型的数据. 数组的存储方式?数据存储结构分为顺序存储.链接存储.索引存储.散列存储.数组是基于顺序存储方式.数组就是在内存中开辟一块连…
阻塞队列(Blocking Queue) 一.队列的定义 说的阻塞队列,就先了解下什么是队列,队列也是一种特殊的线性表结构,在线性表的基础上加了一条限制:那就是一端入队列,一端出队列,且需要遵循FIFO(先进先出)的原则 队列的入口一端叫做队尾(rear),出口一端叫做队头(front),最简单的比如就是排队买火车票,新加入的排队者必须在队尾插入,而下一个排队结束的永远的队伍的第一个人 如下图示: 二.阻塞队列的定义 了解了队列,就很好理解什么是阻塞队列,既然是阻塞的,那就是需要等待,而队列的操…