![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java集合源码学习笔记
文章平均质量分 93
小宇哥x
这个作者很懒,什么都没留下…
展开
-
集合源码学习1:List 集合源码
1、集合体系图1.1、Collection 接口单列集合1、 Iterator对象称为迭代器,主要用于遍历Collection 集合中的元素。2、所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了lterator接口的对象,即可以返回一个迭代器。3、Iterator仅用于遍历集合,Iterator本身并不存放对象。4、增强for可以理解成就是简化版本的迭代器遍历。1.2、Map 接口双列集合2、List 集合一、ArrayList 源码.原创 2021-04-19 21:07:29 · 771 阅读 · 0 评论 -
集合源码学习2:Set 源码学习
一、HashSet 源码1、作者前言从作者前言来看,我们就可以归纳HashSet的要点了:实现Set接⼝不保证迭代顺序允许元素为null底层实际上是⼀个HashMap实例非同步初始容量⾮常影响迭代性能2、基本属性3、构造函数4、添加元素value是⼀个Object,所有的value都是它。所以可以直接总结出:HashSet实际上就是封装了HashMap,操作HashSet元素实际上就是操作HashMap。下面我们来看看Map的put方法看看如何计算key的ha.原创 2021-04-22 17:00:27 · 244 阅读 · 0 评论 -
集合源码学习3:Map 源码学习
一、HashMap 源码1、默认final属性2、成员属性结论:HashMap底层维护了Node类型的数组table,默认为null当创建对象时,将加载因子(loadfactor)初始化为0.75当添加key-val时,通过key的哈希值得到在table的索引。然后判断该索引处是否有元素,如果没有元素直接添加。如果该索引处有元素,继续判断该元素的key是否和准备加入的key相等,如果相等,则直接替换val;如果不相等需要判断是树结构还是链表结构,做出相应处理。如果添加时发现容量不够,则需.原创 2021-04-22 17:49:48 · 205 阅读 · 0 评论