第 16 讲 Java 集合 API 用例学习
如果没有完全理解 JAVA 库中的具有决定性的部分,你就不可能成为一个优秀的 JAVA 程序
员。基本类型都包含在
java.lang
中。
java.util
包提供了集合(set)、列表(list)和映射
(map)等工具,你应该详细的了解它们。
java.io
包也是很重要的,但是你只需要大概了解它
的内容就可以了。
在本章中,我们将探讨 java.util 的设计,而它常常被称为 java 集合 API(java
‘collections API’)。学习它是非常有价值的,这不仅是因为集合类非常的有用,而且因为
API 是一个设计非常好的代码例子。它们很容易理解,而且有很好的文档。API的代码是由
Joshua Bloch 所写,他同时还出版了我们在开始本门课程时所推荐的
Effective Java
这本书。
与此同时,几乎所有的面向对象编程的复杂问题都会在 API 的编写中出现,所以如果你认
真的学习 API,你将对自己以前编码时没有考虑过的编程问题有更广泛的理解。事实上可以毫
不夸张的讲,如果你能完全掌握一个类(例,
ArrayList
)是如何工作的,就可以说你已经完全
掌握 java 概念。我们没有时间探讨全部的问题,但我们将接触其中的绝大部分。他们中的一些,
例如串行化和同步,已经超过本课程的范围。
16.1 类型体系
简要的讲,API 提供三种方式的集合(collection):集合(set)、列表(list)和映射
(map)。set 负责采集元素,但不包括元素的数量和顺序,每一个元素只可能在或不在一个 set
中。list 是一个元素序列,所以它包括元素的顺序和数量。map 是一个键和属性值的关联:它
有一组键,并将每个键映射到一个值上。
API 按照接口体系结构来组织它的类——各种类型的规格说明——以及一个单独的实现类
的体系。图表反映出一些选择类和接口的举例。
Collection
接口抓取了 set 和 list 共有的性
质,但不包括 map,但我们将非正式地使用术语‘collections’来表示 map。
SortedMap
和
SortedSet
用来为 map 和 set 提供以某种顺序取回元素的附加操作。
1