java集合
文章平均质量分 95
秦怀
这个作者很懒,什么都没留下…
展开
-
java集合【13】——— Stack源码分析走一波
前言集合源码分析系列:Java集合源码分析前面已经把Vector,ArrayList,LinkedList分析完了,本来是想开始Map这一块,但是看了下面这个接口设计框架图:整个接口框架关系如下(来自百度百科):原来还有一个漏网之鱼,Stack栈的是挂在Vector下,前面我们已经分析过Vector了,那么顺便把Stack分析一遍。再不写就2022年了:Stack介绍栈是一种数据结构,并不是Java特有的,在Java里面体现是Stack类。它的本质是先进后出,就像是一个桶,只能不断的放在上面,原创 2022-01-10 08:36:07 · 792 阅读 · 0 评论 -
java集合【12】——— ArrayList,LinkedList,Vector的相同点与区别是什么?
文章目录特性列举底层存储结构不同线程安全性不同默认的大小不同扩容机制迭代器增删改查的效率总结一下要想回答这个问题,可以先把各种都讲特性,然后再从底层存储结构,线程安全,默认大小,扩容机制,迭代器,增删改查效率这几个方向入手。特性列举ArrayList:动态数组,使用的时候,只需要操作即可,内部已经实现扩容机制。线程不安全有顺序,会按照添加进去的顺序排好基于数组实现,随机访问速度快,插入和删除较慢一点可以插入null元素,且可以重复Vector和前面说的ArrayList很是类似,这原创 2021-03-26 16:46:56 · 358 阅读 · 0 评论 -
java集合梳理【10】— LinkedList超级详细源码分析
1.LinkedList介绍我们除了最最常用的ArrayList之外,还有LinkedList,这到底是什么东西?从LinkedList官方文档,我们可以了解到,它其实是实现了List和Queue的双向链表结构,而ArrayList底层则是数组结构。下面的讲解基于jdk 1.8:继承了AbstractSequentialList,实现了List,Queue,Cloneable,Serializable,既可以当成列表使用,也可以当成队列,堆栈使用。主要特点有:线程不安全,不同步,如果需要同步需要原创 2020-12-05 23:11:48 · 441 阅读 · 0 评论 -
java集合梳理【10】— Vector超级详细源码分析
文章目录1.Vector介绍2. 成员变量3. 构造函数4. 常用方法4.1 增加4.2 删除4.3 修改4.4 查询4.5 其他常用函数4.6 Lambda表达式相关的方法4.7 如何遍历元素5.序列化和反序列化6.迭代器6.1 Itr6.2 ListItr6.3 VectorSpliterator7. 小结一下1.Vector介绍Vector和前面说的ArrayList很是类似,这里说的也是1.8版本,它是一个队列,但是本质上底层也是数组实现的。同样继承AbstractList,实现了List,Ra原创 2020-11-08 13:18:48 · 488 阅读 · 0 评论 -
java集合梳理【9】— ArrayList超级详细源码分析
文章目录1. ArrayList1.1 ArrayList特点介绍1.2 实现的接口和继承的类2. 成员变量3. 构造方法4. 常用增删改查方法添加元素查询元素更新元素删除元素5.自动扩容和手动缩容机制5.1 自动扩容5.2 手动扩容6. 其他函数7. 迭代器7.1 Itr7.2 ListItr7.3 ArrayListSpliterator8. 小结一下1. ArrayListArrayList是最最常用的集合类了,真的没有之一。下面的分析是基于1.8.0_261源码进行分析的。1.1 ArrayL原创 2020-11-01 14:59:46 · 371 阅读 · 0 评论 -
java集合梳理【8】— List源码详细解读
文章目录1.List接口的特性2.List接口的源码解析3.相关子类介绍3.1 ArrayList3.1.1 成员变量3.1.2 构造方法3.1.3 常用增删改查方法添加元素查询元素更新元素删除元素3.1.4 小结一下3.2 LinkedList3.2.1 成员变量3.2.2 构造函数3.2.3 常用函数添加元素查询元素修改元素删除元素3.2.4 小结一下3.3 Vector3.3.1 成员变量3.3.2 构造函数3.3.3 常用方法增加删除修改查询3.3.4 小结一下3.4 顺便说说AbstractLis原创 2020-10-25 16:04:52 · 719 阅读 · 4 评论 -
java集合梳理【7】— Collections和Collection的区别
刚开始学java的时候,分不清Collection和Collections,其实这两个东西是完全不一样的东西。Collection是一个接口,是java集合中的顶级接口之一,衍生出了java集合的庞大的体系。下面的图可以说明:继承Collection的子类关系如下:既然Collection是接口,那么它本身就是不可以实例化的,它的子类或者实现类是可以的。【java集合梳理】— Co...原创 2020-03-08 16:15:11 · 506 阅读 · 0 评论 -
java集合梳理【6】— Collections接口源码解析
文章目录一、Collections接口是做什么的?二、Collections源码之大类方法1.提供不可变集合2、提供同步的集合3、类型检查4.提供空集合或者迭代器5.提供singleton的集合或者迭代器三、从源码看其他常用方法1. Sort(排序)2. binarySearch(二分搜索)3. reverse(反转)4. Shuffling(混排)5. 交换(swap)6. 拷贝(copy)...原创 2020-03-08 15:30:32 · 527 阅读 · 0 评论 -
java集合梳理【5】— Collection接口详解
文章目录一、Collection接口简介二、Collection源码分析三、Collection的子类以及子类的实现3.1 List extend Collection3.2 Set extend Collection3.3 Queue extend Collection四、Collection和Map的辨析五、Collection和Collections的辨析六、总结一、Collection接...原创 2020-03-01 19:59:45 · 988 阅读 · 0 评论 -
java集合梳理【4】— Iterator和Iterable异同详解
文章目录一、iterator介绍二、iterable接口三、为什么有Iterator还需要Iterable一、iterator介绍iterator接口,也是集合大家庭中的一员。和其他的Map和Collection接口不同,iterator 主要是为了方便遍历集合中的所有元素,用于迭代访问集合中的元素,相当于定义了遍历元素的规范,而另外的Map和Collection接口主要是定义了存储元素的规范...原创 2020-02-25 00:27:27 · 444 阅读 · 0 评论 -
java集合梳理【3】— 浅谈iterator接口
文章目录一、`iterator`接口介绍二、为什么需要iterator接口三、iterator接口相关接口3.1 ListIterator3.2 SpitIterator3.2.1 SpitIterator源码方法解析3.2.2 SpitIterator里面哪些特征常量有什么用呢?四、 iterator在集合中的实现例子4.1 iterator在ArrayList的实现4.2 iterator在H...原创 2020-02-23 22:53:43 · 601 阅读 · 0 评论 -
java集合梳理【2】— 浅谈iterable接口
文章目录iterable接口1. 内部定义的方法1.1 iterator()方法1.2 forEach()方法1.3 spliterator()方法总结iterable接口整个接口框架关系如下(来自百度百科):iterable接口其实是java集合大家庭的最顶级的接口之一了,实现这个接口,可以视为拥有了获取迭代器的能力。Iterable接口出现在JDK1.5,那个时候只有iterator...原创 2020-02-16 22:51:12 · 1220 阅读 · 1 评论 -
java集合梳理【1】— 从集合接口框架说起
文章目录java集合分类Iterable接口内部定义的方法iterator方法forEach方法spliterator方法Collection接口 extend Iterable内部定义的方法继承Collection的主要接口List extend CollectionSet extend CollectionQueue extend CollectionMap接口总结java集合分类之前大概...原创 2020-02-15 01:58:06 · 348 阅读 · 0 评论