
集合类
文章平均质量分 77
纯洁的LELE
这个作者很懒,什么都没留下…
展开
-
ArrayList源码分析
ArrayList源码基于1.8.0_112ArrayList是最常用的集合之一,结构也比较简单。原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化(也可以自定义),当数组无法再放入更多的对象时,数组会扩大到原来的1.5倍。原创 2017-05-11 15:14:20 · 423 阅读 · 0 评论 -
LinkedList源码分析
LinkedList源码基于1.8.0_112LinkedList个人使用的不是很多,结构也比较简单。原理 :LinkedList中使用了双向链表存储元素,链表这里就不在详述了。原创 2017-05-11 17:36:23 · 223 阅读 · 0 评论 -
Vector源码解析
Vector源码基于1.8.0_112Vector使用的相对较少,结构与ArrayList几乎一样。Vector的public方法大多为synchronized,是线程安全的。原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化(也可以自定义),当数组无法再放入更多的对象时,数组会扩大到原来的2倍或者使用增加扩容系数的大小。原创 2017-05-11 20:28:06 · 574 阅读 · 0 评论 -
Stack源码分析
Stack源码基于1.8.0_112Stack继承自Vector,加入了关键的push、peek、pop方法,具体步骤可参考Vector和ArrayList原理 :ArrayList内部使用一个数组存储放入的数据,数组使用默认大小初始化,当数组无法再放入更多的对象时,数组会扩大到原来的2倍。原创 2017-05-12 16:01:00 · 325 阅读 · 0 评论 -
CopyOnWriteArrayList源码分析
CopyOnWriteArrayList源码基于1.8.0_112CopyOnWriteArrayList也是通过数组来存储元素,阅读过之前的ArrayList的话这边应该很容易理解原理 :CopyOnWriteArrayList内部通过数组来存储数据,每次修改list都会产生一个新的数组,然后复制原始数据。修改方法都通过内部的而一个锁对象来实现同步。原创 2017-05-12 18:23:59 · 241 阅读 · 0 评论 -
Collections中的内部集合类
Collections中的内部集合类源码基于1.8.0_112Collections中提供了大量的集合类,以代理的方式对现有的集合进行了功能上的修改。总共有以下几类集合: Unmodifiable:不可修改的集合类 Synchronized:同步的集合类 Checked:类型安全的集合类 Empty:空集合类 Empty:只有单个元素的集合类由于各类以上几类集合对List、Map、Set的原创 2017-05-13 15:49:30 · 644 阅读 · 0 评论 -
HashMap源码解析
源码基于1.8.0_112HashMap是最常用的集合之一,原理不是很难,代码相对较繁琐**原理** :HashMap维护一个数组(很多的桶),每个桶中根据hash值放入链表,链表达到一定长度后转化为红黑树。思考,如果在分布均匀的情况下,每个桶中最多只有一个元素,因为table的容两如果为16 ,那么当放入第13个元素时(负载因子0.75 ) table 就扩容为32。所以只有在hash分布极其不均匀时,才会原创 2017-05-14 20:38:48 · 257 阅读 · 0 评论