
源码分析
文章平均质量分 83
yuyiming1986
这个作者很懒,什么都没留下…
展开
-
ArrayList类源码分析
[size=large][b]ArrayList源码分析[/b][/size] ArrayList是以数组为基础实现的一个动态数组容器,通过以下的代码分析可知,一方面在ArrayList中添加或者删除元素(除了在数组容器末尾添加或者删除元素),是需要移动大量元素的借助System.arraycopy()来实现拷贝移动,另一方面,由于数组实现基础,可依靠数组下标,可以实现随机访问,当然查...原创 2011-11-23 15:50:56 · 153 阅读 · 0 评论 -
HashMap源码分析
HashMap源码分析 HashMap用来存储key-value对,内部使用拉链法Hash表作为存储结构,key-value被封装成Entry<K, V>,Entry也是链表结点。 1. Hash表的内部结构如下: Entry<K, V> table[]; table[0]-->Entry(K,V)-...原创 2011-12-02 21:12:00 · 129 阅读 · 0 评论 -
HashSet源码分析
HashSet源码分析 HashSet是Set的一个实现,Set定义一个集合,集合的一个特征是不能包含重复的元素(可以包含null),HashSet底层使用HashMap作为存储结构来实现。 可知HashSet只用来存储对象,并不是key-value对,因为HashMap中的key必须是不同的,跟集合的定义相同,所以HashSet只使用HashMap中的...原创 2011-12-03 10:39:03 · 155 阅读 · 0 评论 -
LinkedList源码分析
LinkedList源码分析 LinkedList是动态数组的另一种实现,底层以双向循环链表为实现基础,它的优势在于可以快速的删除和添加元素,不需要像ArrayList那样移动大量的元素,但对于查找元素需要逐个遍历链表中的元素,进行匹配。所以LinkedList适用于频繁删除和添加元素,较少查找元素的应用场景。 LinkedList内部使用Entry<E...原创 2011-12-03 11:34:04 · 143 阅读 · 0 评论