Java记录 -52- 整体看Java Collection类集

来源:互联网 发布:用java写超级马里奥 编辑:程序博客网 时间:2024/06/06 02:12

java.util包中包含了一些在java 2中新增加的最令人兴奋的增强功能:类集。

除了类集,java.util 还包含了支持范围广泛的函数的各种各样的类和接口。对它们的应用包括产生伪随机码数,对日期和时间的操作,观测事件,对位集的操作以及标记字符串。

由于java.util具有许多特性,因此它是Java中最被广泛使用的一个包。

 

下面详细介绍下类集:

一个类集(collection)是一组对象。Java的类集(collection)框架使你的程序处理对象组的方法标准化,设计成包含一组标准的接口。

 

算法(Algorithms)是类集机制的另一个重要部分。算法操作类集,它在Collections类中被定义为静态方法。每一个类集类不必实现它自己的方案,算法提供了一个处理类集的标准方法。

 

由类集框架创建的另一项是Iterator接口。一个迭代程序(iterator)提供了一个多用途的,标准化的方法,用于每次访问类集的一个元素。因此迭代程序提供了一种枚举类集内容(enumerating the contents of a collection)的方法。因为每个类集都实现Iterator,所以通过有Iterator定义的方法,任一类集类的元素都能被访问到。

 

除了类集之外,框架定义了几个映射接口和类。映射(Maps)存储键/值对。尽管映射不是类集,但它们完全用类集集成,可以获取映射的类集“视图”(collection-view),该“视图”包含了从存储在类集中的映射得到的元素。所以选择一个映射就可以将其当作一个类集类处理。

 

类集仅仅是提供了处理事情的一个更好的方法。

 

除了类集接口之外,类集也使用Comparator,Iterator和ListIterator接口。Comparator接口定义了两个对象如何比较;Iterator和ListIterator接口枚举类集中的对象。

 

类集接口提供的方法有可选择性;可修改的类集支持可更改类集内容的方法,不可修改的类集则不支持。如果对一个不可修改的类集使用了更改类集内容的方法,将引发一个UnsupportedOperationException异常。所有内置的类集都是可修改的。

 

Collection接口是构造类集框架的基础。它声明所有类集都将拥有的核心方法。因为所有类集实现Collection,所以熟悉它的方法对于清楚地理解框架是必要的。

 

调用add()方法可以将对象加入类集。注意add()带一个Object类型的参数。因为Object是所有类的超类,所以任何类型的对象都可以被存储在一个类集中。然而原始类型不行。如果想存储原始类型,则需要使用原始类型包装器。可以通过调用addAll()方法将一个类集的全部内容增加到另一个类集中。

可以通过调用remove()方法将一个对象删除。为了删除一组对象,可以调用 removeAll()方法。调用 retainAll()方法可以将除了一组指定的元素之外的所有元素删除。为了清空类集,可以调用clear()方法。

通过调用那个contains()方法,可以确定一个类集是否包含了一个指定的对象。

为了确定一个类集是否包含了另一个类集的全部元素,可以调用containsAll()方法。

当一个类集是空的时候,可以通过调用isEmpty()方法来予以确认。

调用size()方法可以获得类集中当前元素的个数。

toArray()方法返回一个数组,这个数组包含了存储在调用类集中的元素。通过在类集和数组之间提供一套路径,可以充分利用这两者的优点。

一个更加重要的方法时iterator(),该方法对类集返回一个迭代程序。

 

Collection: 集合层次中的根接口,JDK没有提供这个接口直接的实现类。

Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set。

List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。

Map:包含了key-value对。Map不能包含重复的key。SortedMap是一个按照升序排列key的Map。