java集合类
alec-fan
这个作者很懒,什么都没留下…
展开
-
HashSet源码分析(基于JDK1.6)
1. HashSet概述: HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。 2. HashSet的实现: 对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,因此HashSet转载 2014-03-25 18:18:02 · 683 阅读 · 0 评论 -
ArrayList原码分析(基于JDK1.6)
1. ArrayList概述: ArrayList是List接口的可变数组的实现。实现了所有可选列表操作,并允许包括 null 在内的所有元素。除了实现 List 接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。 每个ArrayList实例都有一个容量,该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向ArrayList中不断添加元素,其容量转载 2014-03-25 17:10:14 · 585 阅读 · 0 评论 -
HashMap原码分析(基于JDK1.6)
Java最基本的数据结构有数组和链表。数组的特点是空间连续(大小固定)、寻址迅速,但是插入和删除时需要移动元素,所以查询快,增加删除慢。链表恰好相反,可动态增加或减少空间以适应新增和删除元素,但查找时只能顺着一个个节点查找,所以增加删除快,查找慢。有没有一种结构综合了数组和链表的优点呢?当然有,那就是哈希表(虽说是综合优点,但实际上查找肯定没有数组快,插入删除没有链表快,一种折中的方式吧)。一般采转载 2014-03-25 17:09:38 · 1082 阅读 · 2 评论 -
LinkedHashSet源码分析(基于JDK1.6)
1. LinkedHashSet概述: LinkedHashSet是具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可为插入顺序或是访问顺序。 注意,此实现不是同步的。如果多个线程同时访问链接的哈希Set,而其中至少一个线程修改了该Set,则它必转载 2014-03-25 18:22:34 · 785 阅读 · 0 评论 -
LinkedList原码分析(基于JDK1.6)
http://www.cnblogs.com/hzmark/archive/2012/12/25/LinkedList.html LinkedList也和ArrayList一样实现了List接口,但是它执行插入和删除操作时比ArrayList更加高效,因为它是基于链表的。基于链表也决定了它在随机访问方面要比ArrayList逊色一点。 除此之外,LinkedList还提供转载 2014-03-25 17:10:41 · 565 阅读 · 0 评论 -
TreeMap源码分析(基于JDK1.6)
常见的数据结构有数组、链表,还有一种结构也很常见,那就是树。前面介绍的集合类有基于数组的ArrayList,有基于链表的LinkedList,还有链表和数组结合的HashMap,今天介绍基于树的TreeMap。转载 2014-04-04 16:23:06 · 796 阅读 · 0 评论 -
Java集合类
http://www.cnblogs.com/hzmark/archive/2012/12/25/LinkedList.html集合类的分类(图片转自http://biancheng.dnbcw.info/1000wen/359774.html) 上图中不包含Queue内容,部分Map的实现类未给出。 常见使用的有List、Set、M转载 2014-03-25 11:04:20 · 650 阅读 · 0 评论 -
LinkedHashMap源码分析(基于JDK1.6)
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代转载 2014-03-25 18:01:29 · 828 阅读 · 0 评论