jacksun1978

导航

 

Java Collection框架

 

在Java2中,有一套设计优良的接口和类组成了Java的Collection框架。这些接口和类是我们常用的,而且是所熟知的数据结构,如Map,List和Set。java用面向对象的设计对这些数据结构和算法进行了封装,使我们更加易于使用。我们也可以以这个框架为基础,定义更高级别的数据抽象。

 

Collection框架的核心有三种:Map,List和Set。这三种都是接口,常用集合类的继承结构如下:

 

Collection《——List《——Vector

Collection《——List《——ArrayList

Collection《——List《——LinkedList

 

Collection《——Set《——HashSet

Collection《——Set《——HashSet《——LinkedHashSet

Collection《——Set《——SortedSet《——TreeSet

 

Map《——HashMap

Map《——SortedMap《——TreeMap

 

List:类似于Java中的数组,有序的,可以使用索引,可以精确的控制元素的位置。可以有重复的元素,可以有Null元素

 

Vector:基于数组的List,难以避免数组的限制,难以超越数组的性能,所以要优先选择数组。与ArrayList不同的是,Vector是线程同步的(synchronized)

 

ArrayList:基于数组的list,不是线程同步的。

 

LinkedList:不是基于数组的,适合添加、删除操作。

 

 

Set:不包含重复元素,无序的Collection。与List不同在于,List多数基于数组,而Set多数基于HashMap。

 

Map:是把键对象和值对象进行关联的容器。

 

Vector、ArrayList和LinkedList的比较:

1、三者的性能都不如数组,所以能用数组优先选择数组

2、如果不考虑线程同步,没有频繁的插入删除,优先选择ArrayList

3、如果考虑线程同步,优先选择Vector

4、如果有频繁的插入删除,选择LinkedList

5、如果什么都不知道,用ArrayList没错。

 

Collections和Arrays:

Collections和Arrays是两个工具类,提供一些常用的静态方法帮助我们实现折半查找、排序等操作。

posted on 2012-03-14 11:23  jacksun1978  阅读(712)  评论(0编辑  收藏  举报