Java集合源码分析
文章平均质量分 84
深入分析Java集合类的源码,并阐述各个集合之间的区别以及适用的场合
xujian_2014
这个作者很懒,什么都没留下…
展开
-
Java集合系列之TreeMap源码分析
一、概述 TreeMap是基于红黑树实现的。由于TreeMap实现了java.util.sortMap接口,集合中的映射关系是具有一定顺序的,该映射根据其键的自然顺序进行排序或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。另外TreeMap中不允许键对象是null。 1、什么是红黑树? 红黑树是一种特殊的二叉排序树,主要有以下几条基本性原创 2015-07-15 14:18:59 · 1016 阅读 · 0 评论 -
Java集合系列之HashSet源码分析
一、HashSet简介 HashSet是Set接口典型实现,它按照Hash算法来存储集合中的元素,具有很好的存取和查找性能。主要具有以下特点: 不保证set的迭代顺序HashSet不是同步的,如果多个线程同时访问一个HashSet,要通过代码来保证其同步集合元素值可以是null 当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来原创 2015-07-13 20:26:20 · 809 阅读 · 0 评论 -
Java集合系列之HashMap源码分析
一、HashMap简介 HashMap是基于哈希表的Map接口实现的,它存储的是内容是键值对映射。此类不保证映射的顺序,假定哈希函数将元素适当的分布在各桶之间,可为基本操作(get和put)提供稳定的性能。 ps:本文中的源码来自jdk1.8.0_45/src。 1、重要参数 HashMap的实例有两个参数影响其性能。 初始容量:哈希表中桶的数量原创 2015-07-10 17:09:47 · 984 阅读 · 0 评论 -
Java集合系列之LinkedList源码分析
一、LinkedList简介 LinkedList是一种可以在任何位置进行高效地插入和移除操作的有序序列,它是基于双向链表实现的。 ps:这里有一个问题,就是关于实现LinkedList的数据结构是否为循环的双向链表,上网搜了有很多文章都说是循环的,并且有的文章中但是我看了源代码觉得应该不是循环的? 例如在删除列表尾部节点的代码: private E unli原创 2015-07-08 18:24:06 · 1286 阅读 · 0 评论 -
Java集合系列之ArrayList源码分析
一、ArrayList简介 ArrayList是可以动态增长和缩减的索引序列,它是基于数组实现的List类。 该类封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示它们所封装的Object[]数组的长度,当向ArrayList中添加元素时,该属性值会自动增加。如果想ArrayList中添加大量元素,可使用ensureCapacity方法一原创 2015-07-06 21:12:05 · 1040 阅读 · 1 评论