JAVA类集框架主要接口

13.1.2  类集框架主要接口

在整个Java类集中最常使用的类集接口是:Collection、List、Set、Map、Iterator、ListIterator、Enumeration、SortedSet、SortedMap、Queue、Map.Entry,这些接口的具体特点如表13-1所示。

表13-1  类集框架接口的具体特点

   

   

   

1

Collection

是存放一组单值的最大接口,所谓的单值是指

集合中的每个元素都是一个对象。一般很少

直接使用此接口直接操作

2

List

Collection接口的子接口,也是最常用的接口。

此接口对Collection接口进行了大量的扩充,

里面的内容是允许重复的

3

Set

Collection接口的子类,没有对Collection

接口进行扩充,里面不允许存放重复内容

4

Map

是存放一对值的最大接口,即接口中的每个

元素都是一对,以keyvalue的形式保存

5

Iterator

集合的输出接口,用于输出集合中的内容,

只能进行从前到后的单向输出

6

ListIterator

Iterator的子接口,可以进行双向输出

7

Enumeration

是最早的输出接口,用于输出指定集合中的内容

8

SortedSet

单值的排序接口,实现此接口的集合类,

里面的内容可以使用比较器排序

9

SortedMap

存放一对值的排序接口,实现此接口的集合类,

里面的内容按照key排序,使用比较器排序

10

Queue

队列接口,此接口的子类可以实现队列操作

11

Map.Entry

Map.Entry的内部接口,每个Map.Entry对象

都保存着一对keyvalue的内容,每个Map

接口中都保存有多个Map.Entry接口实例

这些接口中本身是存在继承关系的,其中部分接口的继承关系如图13-1所示。

 
(点击查看大图)图13-1  接口的继承关系

下面将介绍这些接口的作用及其常用子类。

U提示:SortedXx定义的接口都属于排序接口。

在Java类集中凡是以Sorted开头的全部都属于排序的接口,如SortedSet、SortedMap。

 

13.2.1  Collection接口的定义

Collection接口的定义如下:

public interface Collection<E> extends Iterable<E>

从接口的定义中可以发现,此接口使用了泛型的定义,在操作时必须指定具体的操作类型。这样可以保证类集操作的安全性,避免发生ClassCastException异常。

U提示:JDK 1.5之后类集才增加了泛型的支持。

在JDK 1.5之前的类集框架中可以存放任意的对象到集合中,这样一来在操作时就可能出现因为类型不统一而造成的ClassCastException异常。所以在JDK 1.5之后为了保证类集中所有元素的类型一致,将类集框架进行了升级,加入了泛型,这样就可以保证一个集合中的全部元素的类型是统一的。

Collection接口是单值存放的最大父接口,可以向其中保存多个单值(单个的对象)数据。此接口定义了表13-2所示的方法定义。

表13-2  Collection接口的方法定义

序号

   

类型

   

1

public boolean add(E o)

普通

向集合中插入对象

2

public boolean addAll

(Collection<? extends E> c)

普通

将一个集合的内容插入进来

3

public void clear()

普通

清除此集合中的所有元素

4

public boolean contains(Object o)

普通

判断某一个对象是否在集合中存在

5

public boolean containsAll

(Collection<?> c)

普通

判断一组对象是否在集合中存在

6

public boolean equals(Object o)

普通

对象比较

7

public int hashCode()

普通

哈希码

8

public boolean isEmpty()

普通

集合是否为空

9

public Iterator<E> iterator()

普通

Iterator接口实例化

10

public boolean remove(Object o)

普通

删除指定对象

续表

序号

   

类型

   

11

public boolean removeAll

(Collection<?> c)

普通

删除一组对象

12

public boolean retainAll

(Collection<?> c)

普通

保存指定内容

13

public int size()

普通

求出集合的大小

14

public Object[] toArray()

普通

将一个集合变

为对象数组

15

public <T> T[] toArray(T[] a)

普通

指定好返回的

对象数组类型

在一般的开发中,往往很少直接使用Collection接口进行开发,基本上都是使用其子接口。子接口主要有List、Set、Queue和SortedSet。

U提示:关于Collection接口很少直接使用的说明。

在Java最早的程序开发中提倡使用Collection,这一点在EJB 2.x(Enterprise JavaBean,专门用作分布式程序开发的一套标准规范)中体现得非常明显。但是随着Java的发展,为    了让程序的开发及使用更加明确,例如,此集合中的内容是否可以重复、是否可以排序   等,所以提倡直接使用Collection的子接口,这一点在SUN的开源项目--宠物商店中特别明显。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值