科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道java.util 第1部分:类集框架 (2)

java.util 第1部分:类集框架 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

java.util 第1部分:类集框架 (2)

作者:Herbert Schildt 著 张玉清 吴溥峰等 译 来源:清华大学出版社 2007年10月30日

关键字: 类集框架 java.util

  • 评论
  • 分享微博
  • 分享邮件

为了方便起见,创建用于各种特殊目的的实现工具。一部分工具可以使你自己的类集实现
更加容易。最后,增加了允许将标准数组融合到类集框架中的机制。
算法(Algorithms)是类集机制的另一个重要部分。算法操作类集,它在Collections类中被定义为静态方法。因此它们可以被所有的类集所利用。每一个类集类不必实现它自己的方案,算法提供了一个处理类集的标准方法。由类集框架创建的另一项是Iterator接口。一个迭代程序(iterator)提供了一个多用途的,标准化的方法,用于每次访问类集的一个元素。因此迭代程序提供了一种枚举类集内容(enumerating the contents of a collection)的方法。因为每一个类集都实现Iterator,所以通过由Iterator定义的方法,任一类集类的元素都能被访问到。因此,稍作修改,循环通过集合的程序代码也可以被用来循环通过列表。
除了类集之外,框架定义了几个映射接口和类。映射(Maps)存储键/值对。尽管映射在对项的正确使用上不是“类集”,但它们完全用类集集成。在类集框架的语言中,可以获得映射的类集“视图”(collection-view)。这个“视图”包含了从存储在类集中的映射得到的元素。因此,如果选择了一个映射,就可以将其当做一个类集来处理。
对于由java.util定义的原始类,类集机制被更新以便它们也能够集成到新的系统里。所以理解下面的说法是很重要的:尽管类集的增加改变了许多原始工具类的结构,但它却不会导致被抛弃。类集仅仅是提供了处理事情的一个更好的方法。最后的一点:如果你对C++比较熟悉的话,那么你可以发现Java的类集技术与在C++中定义的标准模板库(STL)相似。在C++中叫做容器(container),而在Java中叫做类集。
15.2 类 集 接 口
类集框架定义了几个接口。本节对每一个接口都进行了概述。首先讨论类集接口是因为它们决定了collection类的基本特性。不同的是,具体类仅仅是提供了标准接口的不同实现。支持类集的接口总结在如下的表中:
接口 描述
Collection 能使你操作对象组,它位于类集层次结构的顶层
List 扩展Collection去处理序列(对象的列表)
Set 扩展Collection去处理集合,集合必须包含唯一元素
SortedSet 扩展Set去处理排序集合
除了类集接口之外,类集也使用Comparator,Iterator和ListIterator接口。关于这些接口将在本章后面做更深入的描述。简单地说,Comparator接口定义了两个对象如何比较;Iterator和ListIterator接口枚举类集中的对象。为了在它们的使用中提供最大的灵活性,类集接口允许对一些方法进行选择。可选择的方法使得使用者可以更改类集的内容。支持这些方法的类集被称为可修改的(modifiable)。不允许修改其内容的类集被称为不可修改的(unmodifiable)。如果对一个不可修改的类集使用这些方法,将引发一个UnsupportedOperationException异常。所有内置的类集都是可修改的。
下面讨论类集接口。
15.2.1 类集接口
Collection接口是构造类集框架的基础。它声明所有类集都将拥有的核心方法。这些方法被总结在表15-1中。因为所有类集实现Collection,所以熟悉它的方法对于清楚地理解框架是必要的。其中几种方法可能会引发一个UnsupportedOperationException异常。正如上面解释的那样,这些发生在当类集不能被修改时。当一个对象与另一个对象不兼容,例如当企图增加一个不兼容的对象到一个类集中时。将产生一个ClassCastException异常。
查看本文来源
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章