- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11 Java集合
11.1认识集合类
集合(或容器)表示保存一个对象组的单个对象,其它对象被认为是它的元素。
集合与数组的不同在于,它是大小可变的序列,而且元素类型可以不受限定,只要是引用类型。对象数组中包含一组对象,但是对象数组使用的时候存在一个长度的限制,那么集合是专门解决这种限制的,使用集合可以方便的向数组中增加任意多个数据。
集合类使用初始容量和加载因子调整自己的大小。集合类全部支持泛型,是一种数据安全的用法。
Java集合框架定义了几个接口。这些集合接口决定了集合实现类的基本特性。对于不同的集合实现类提供了这些标准接口的不同实现。Java集合接口如表11-1所示:
表11-1 Java集合接口
Java集合类库的用途就是“保存对象”,主要分为两类:
Collection:层次结构中的根接口。Collection表示一组对象,这些对象也称为collection的元素。一些collection允许有重复的元素,而另一些则不允许。一些collection是有序的,而另一些则是无序的。JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现。此接口通常用来传递collection,并在需要最大普遍性的地方操作这些collection。Collection常见的子接口如图11-1:
图11-1 Collection接口继承图
Collection:一组没有顺序的对象,允许出现相同的元素对象。
Set:一组没有顺序的对象(离散),不允许重复相同的元素。
SortedSet:是一个按照升序排列元素的Set。
List:一组有插入顺序的对象,允许重复相同的元素。
关于Collection更为详细的继承图谱如图11-2:
图11-2 Collection接口以及实现类继承图谱
Map:一组成对的“键—值”对象,允许你使用键来查找值。ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数组与对象关联在一起。映射表允许我们使用一个对象来查找某个对象,它被称为“关联数组”,因为它将某些对象与另外一些对象关联在一起,也被称为“字典”,因为你可以使用键对象来查找值对象。Map常见的子接口如图11-3:
图11-3 Map接口继承图
关于Map更为详细的继承图谱如图11-4:
图11-4 Map接口以及实现类继承图谱
除了类集接口之外,类集也使用Comparator、Iterator和ListIterator接口。关于这些接口将在本章后面做更深入的讲解。简单地说,Comparator接口定义了两个对象比较方法。
Iterator和ListIterator接口类集中的对象。
为了在它们的使用中提供最大的灵活性,类集接口允许对一些方法进行选择。可选择的方法使得使用者可以更改类集的内容。支持这些方法的类集被称为可修改的(modifiable)。不允许修改其内容的类集被称为不可修改的(unmodifiable)。而所有内置的类集都是可修改的。如果对一个不可修改的类集使用这些方法,将引发一个UnsupportedOperationException异常。
11.2 Collection接口及其子接口
Collection接口是构造类集框架的基础,是保存单值集合的最大父接口。Java没有提供该接口的直接实现类。
Collection 接口定义如下:
public interface CollectionE extends IterableE
JDK1.5之后为Collection接口增加了泛型声明。所有的类集操作都存放在java.util包中。在一般的开发中,往往很少去直接使用Collection接口进行开发,而基本上都是使用其子接口。常见的Collection子接口有:List、Set、Queue、SortedSet。
Collection声明了所有类集都将拥有的核心方法。在JDK1.5之前,这些方法被总结在表11-2(A)中,在JDK1.5之后,增加了泛型,这些方法被总结在表11-2(B)中。因为所有类集实现Collection,所以熟悉它的方法对于清楚地理解框架是必要的。其中几种方法可能会引发一个UnsupportedOperationException异常。正如上面的解释,这些将发生在当类集不能被修改的时候。当一个对象与另一个对象不兼容,例如:当企图增加一个不兼容的对象到一个类集中时,将产生一个ClassCastException异常。
表11-2(A) JDK1.5之前Collection接口的方法定义
表11-2(B) JDK1.5之后Collection接口的方法定义
(注:关于JDK1.5后方法的具体说明可以参考JDK1.5之前的方法说明)
调用ad
文档评论(0)