java集合类用法总结

java集合类用法总结

ID:34178463

大小:110.00 KB

页数:19页

时间:2019-03-04

java集合类用法总结_第1页
java集合类用法总结_第2页
java集合类用法总结_第3页
java集合类用法总结_第4页
java集合类用法总结_第5页
资源描述:

《java集合类用法总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、java中的集合类总结2008年09月28日星期日下午12:39在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是JavaAPI提供了多种集合的实现,我在使用和面试的时候频频遇到这样的“抉择”。:)(主要还是面试的时候)久而久之,也就有了一点点的心得体会,写出来以供大家讨论。总的说来,JavaAPI中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:Collection<--List<--VectorCollection<--List<--ArrayListCollection<--List<--LinkedListCollect

2、ion<--Set<--HashSetCollection<--Set<--HashSet<--LinkedHashSetCollection<--Set<--SortedSet<--TreeSetVector:基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用,它不可能走入Array的限制。性能也就不可能超越Array。所以,在可能的情况下,我们要多运用Array。另外很重要的一点就是Vector“sychronized”的,这个也是Vector和ArrayList的唯一的区别。ArrayList:同Vector一样是一个基于Array上的链表,但是

3、不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些,但是当运行到多线程环境中时,可需要自己在管理线程的同步问题。LinkedList:LinkedList不同于前面两种List,它不是基于Array的,所以不受Array性能的限制。它每一个节点(Node)都包含两方面的内容:1.节点本身的数据(data);2.下一个节点的信息(nextNode)。所以当对LinkedList做添加,删除动作的时候就不用像基于Array的List一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了。这就是LinkedList的优势。List总结:1.所

4、有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[tom,1,c];2.所有的List中可以有相同的元素,例如Vector中可以有[tom,koo,too,koo];3.所有的List中可以有null元素,例如[tom,null,1];4.基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。HashSet:虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这

5、个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。看看HashSet的add(Objectobj)方法的实现就可以一目了然了。publicbooleanadd(Objectobj){returnmap.put(obj,PRESENT)==null;}这个也是为什么在Set中不能像在List中一样有重复的项的根本原因,因为HashMap的key是不能有重复的。LinkedHashSet:HashSet的一个子类,一个链表。TreeSet:SortedSet的子类,它不同于HashSet的根本就是TreeSet是有序的。它是通

6、过SortedMap来实现的。Set总结:1.Set实现的基础是Map(HashMap);2.Set中的元素是不能重复的,如果使用add(Objectobj)方法添加已经存在的对象,则会覆盖前面的对象为什么要使用集合类当你事先不知道要存放数据的个数,或者你需要一种比数组下标存取机制更灵活的方法时,你就需要用到集合类。理解集合类集合类存放于java.util包中。集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是指集合中对象的引用(reference)。集合类型主要有3种:set(集)、list(列表)和map(映射)。(1)集集(set)是最简单的一

7、种集合,它的对象不按特定方式排序,只是简单的把对象加入集合中,就像往口袋里放东西。对集中成员的访问和操作是通过集中对象的引用进行的,所以集中不能有重复对象。集也有多种变体,可以实现排序等功能,如TreeSet,它把对象添加到集中的操作将变为按照某种比较规则将其插入到有序的对象序列中。它实现的是SortedSet接口,也就是加入了对象比较的方法。通过对集中的对象迭代,我们可以得到一个升序的对象集合。(2)列表列表的主要特征是其对象以线性方式存储,没有特定顺序,只有一个开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。