码迷,mamicode.com
首页 > 编程语言 > 详细

java中的集合类

时间:2015-11-21 01:55:12      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

实线边框的是实现类,比如ArrayList,LinkedList,HashMap等,折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等,而点线边框的是接口,比如Collection,Iterator,List等。

上述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(),next(),remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),previous(),hasPrevious()。也就是说如果实现Iterator接口,那么在遍历集合中元素的时候,只能往后遍历,被遍历后的元素不会在遍历到,通常无序集合实现的都是这个接口,比如HashSet,HashMap;而那些元素有序的集合,实现的一般都是LinkedIterator接口,实现这个接口的集合可以双向遍历,既可以通过next()访问下一个元素,又可以通过previous()访问前一个元素,比如ArrayList。

1、ArrayList、LinkedList

两者都是有序的,允许重复元素,在定位元素、增删元素上效率不同

2、HashSet、TreeSet、LinkedHashSet

HashSet无序不可重复

TreeSet比HashSet有所改进,是一个有序的集合(默认使用红黑树完成排序)。这里排序是通过元素比较为依据,不是插入的顺序。

LinkedHashSet在HashSet的基础上又形成了双向链表,可以记住插入的顺序

3、HashMap、TreeMap、LinkedHashMap

HashMap键必须唯一,值可以重复,没有顺序

TreeMap在HashMap的基础上有所改进,通过比较键值来实现排序,是一个有序的键值对。

LinkedHashMap在HashSet的基础上又形成了双向链表,按照访问顺序,对映射条目进行调整,每次被访问的条目都会自动移动到双向链表的尾部

4、WeakHashMap

以弱键实现的基于哈希表的 Map。在 WeakHashMap中,当某个键不再正常使用时,将自动移除其条目。

使用短时间内就过期的缓存时最好使用weakHashMap,它包含了一个自动调用的方法expungeStaleEntries,这样就会在值被引用后直接执行这个隐含的方法,将不用的键清除掉。

 

参考:

http://blog.csdn.net/liulin_good/article/details/6213815

《java核心技术 卷I 基础知识》

 

java中的集合类

标签:

原文地址:http://www.cnblogs.com/mingziday/p/4982803.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!