开课吧Java教程什么是类集接口

类集框架定义了几个接口。本节对每一个接口都进行了概述。首先讨论类集接口是因为它们决定了collection类的基本特性。不同的是,具体类仅仅是提供了标准接口的不同实现。支持类集的接口总结在如下的表中:

接口描述
Collection能使你操作对象组,它位于类集层次结构的顶层
List扩展Collection去处理序列(对象的列表)
Set扩展Collection去处理集合,集合必须包含唯一元素
SortedSet扩展Set去处理排序集合

除了类集接口之外,类集也使用Comparator,Iterator和ListIterator接口。关于这些接口将在本章后面做更深入的描述。

简单地说,Comparator接口定义了两个对象如何比较;Iterator和ListIterator接口枚举类集中的对象。

为了在它们的使用中提供最大的灵活性,类集接口允许对一些方法进行选择。可选择的方法使得使用者可以更改类集的内容。支持这些方法的类集被称为可修改的。

不允许修改其内容的类集被称为不可修改的。如果对一个不可修改的类集使用这些方法,将引发一个UnsupportedOperationException异常。所有内置的类集都是可修改的。

Collection接口是构造类集框架的基础。它声明所有类集都将拥有的核心方法。这些方法被总结在下表中。因为所有类集实现Collection,所以熟悉它的方法对于清楚地理解框架是必要的。其中几种方法可能会引发一个UnsupportedOperationException异常。

正如上面解释的那样,这些发生在当类集不能被修改时。当一个对象与另一个对象不兼容,例如当企图增加一个不兼容的对象到一个类集中时。将产生一个ClassCastException异常。

Collection 定义的方法

方法描述
boolean add(Object obj)将obj加入到调用类集中。如果obj被加入到类集中了,则返回true;如果obj已经是类集中的一个成员或类集不能被复制时,则返回false
boolean addAll(Collection c)将c中的所有元素都加入到调用类集中,如果操作成功(也就是说元素被加入了),则返回true;否则返回false
void clear( )从调用类集中删除所有元素
boolean contains(Object obj)如果obj是调用类集的一个元素,则返回true,否则,返回false
boolean containsAll(Collection c)如果调用类集包含了c中的所有元素,则返回true;否则,返回false
boolean equals(Object obj)如果调用类集与obj相等,则返回true;否则返回false
int hashCode( )返回调用类集的散列码
boolean isEmpty( )如果调用类集是空的,则返回true;否则返回false
Iterator iterator( )返回调用类集的迭代程序
Boolean remove(Object obj)从调用类集中删除obj的一个实例。如果这个元素被删除了,则返回true;否则返回false
Boolean removeAll(Collection c)从调用类集中删除c的所有元素。如果类集被改变了(也就是说元素被删除了),则返回true;否则返回false
Boolean retainAll(Collection c)删除调用类集中除了包含在c中的元素之外的全部元素。如果类集被改变了(也就是说元素被删除了),则返回true,否则返回false
int size( )返回调用类集中元素的个数
Object[ ] toArray( )返回一个数组,该数组包含了所有存储在调用类集中的元素。数组元素是类集元素的拷贝
Object[ ] toArray(Object array[ ])返回一个数组,该数组仅仅包含了那些类型与数组元素类型匹配的类集元素。数组元素是类集元素的拷贝。如果array的大小与匹配元素的个数相等,它们被返回到array。如果array的大小比匹配元素的个数小,将分配并返回一个所需大小的新数组,如果array的大小比匹配元素的个数大,在数组中,在类集元素之后的单元被置为null。如果任一类集元素的类型都不是 array 的子类型,则引发一个ArrayStoreException异常

调用add( )方法可以将对象加入类集。注意add( )带一个Object类型的参数。因为Object是所有类的超类,所以任何类型的对象可以被存储在一个类集中。然而原始类型可能不行。

例如,一个类集不能直接存储类型int,char,double等的值。当然如果想存储这些对象,可以通过调用addAll( )方法将一个类集的全部内容增加到另一个类集中。

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

为了清空类集,可以调用clear( )方法。通过调用contains( )方法,可以确定一个类集是否包含了一个指定的对象。为了确定一个类集是否包含了另一个类集的全部元素,可以调用containsAll( )方法。当一个类集是空的时候,可以通过调用isEmpty( )方法来予以确认。调用size( )方法可以获得类集中当前元素的个数。

toArray( )方法返回一个数组,这个数组包含了存储在调用类集中的元素。这个方法比它初看上去的能力要更重要。经常使用类数组语法来处理类集的内容是有优势的。通过在类集和数组之间提供一条路径,可以充分利用这两者的优点。

调用equals( )方法可以比较两个类集是否相等。“相等”的精确含义可以不同于从类集到类集。

例如,可以执行equals( )方法以便用于比较存储在类集中的元素的值,换句话说,equals( )方法能比较对元素的引用。

一个更加重要的方法是iterator( ),该方法对类集返回一个迭代程序。正如你将看到的那样,当使用一个类集框架时,迭代程序对于成功的编程来说是至关重要的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值