Java™官方教程:集合(一)
集合简介
一个集合(有时称为容器)只是一个将多个元素分组到一个单元中的对象。集合用于存储,检索,操作和传输聚合数据。典型地,它们表示形成自然组的数据项目,例如扑克手(卡片集合),邮件文件夹(字母集合)或电话目录(名称到电话号码的映射)。如果您已经使用了Java编程语言 - 或者其他任何编程语言 - 则您已经熟悉了这些集合。
什么是集合框架?
集合框架是用于表示和操纵集合一个统一架构。所有的集合框架包含以下内容:
接口:这些是表示集合的抽象数据类型。接口允许集合独立于其表示的细节被操纵。在面向对象的语言中,接口通常形成一个层次结构。
实现:这些是集合接口的具体实现。实质上,它们是可重用的数据结构。
算法:这些是对实现收集界面的对象执行有用的计算(例如搜索和排序)的方法。算法被认为是多态的:也就是说,相同的方法可以用在适当的收集接口的许多不同的实现上。实质上,算法是可重用的功能。
除了Java集合框架之外,最着名的集合框架示例还有C ++标准模板库(STL)和Smalltalk的集合层次结构。从历史上看,集合框架相当复杂,这给了他们一个陡峭的学习曲线的声誉。我们相信Java集合框架打破了这个传统,您将在本章学习。
Java集合框架的好处
Java集合框架提供了以下好处:
减少编程工作量:通过提供有用的数据结构和算法,集合框架可以让您专注于程序的重要部分,而不是使其工作所需的低级“管道”。通过促进不相关的API之间的互操作性,Java集合框架免除了编写适配器对象或转换代码来连接API。
提高程序速度和质量:这个集合框架提供了有用的数据结构和算法的高性能,高质量的实现。每个接口的各种实现是可以互换的,所以程序可以通过切换集合实现来轻松地进行调整。由于您已经摆脱了编写自己的数据结构的苦差事,您将有更多时间致力于提高程序的质量和性能。
允许不相关的API之间的互操作性:集合接口是APIs来回传递集合的本地语言。如果我的网络管理API提供了一个节点名称的集合,并且如果您的GUI工具包期望一个列标题的集合,我们的API将无缝地互操作,即使它们是独立编写的。
减少学习和使用新的API的努力:许多API自然地将输入的集合作为输出提供。过去,每个这样的API都有一个小的子API来操作它的集合。这些专用集合的子API之间几乎没有一致性,所以你必须从头学习每一个,使用它们很容易犯错误。随着标准收集界面的出现,问题就消失了。
减少设计新API的工作量:这是以前优势的另一面。设计师和实施者不必在每次创建依赖于集合的API时重新发明轮子; 相反,他们可以使用标准的收集界面。
促进软件重用:符合标准集合接口的新数据结构本质上是可重用的。对于在实现这些接口的对象上运行的新算法也是如此。