类:collections 简介

集合(有时称为容器)只是将多个元素分组为一个单元的对象。集合用于存储,检索,操作和传达聚合数据。通常,它们代表形成自然组的数据项,例如扑克手(纸牌集合),邮件文件夹(字母集合)或电话目录(名称到电话 Numbers 的 Map)。如果您使用过 Java 编程语言(或几乎所有其他编程语言),则您已经熟悉集合。

什么是集合框架?

集合框架是用于表示和操作集合的统一体系结构。所有集合框架都包含以下内容:

  • interface: 这些是代表集合的抽象数据类型。interface允许独立于其表示的细节来操纵集合。在面向对象的语言中,interface通常形成层次结构。

  • 实现: 这些是 collection interface的具体实现。本质上,它们是可重用的数据结构。

  • 算法: 这些是对实现集合interface的对象执行有用的计算(例如搜索和排序)的方法。据说这些算法是多态的:也就是说,可以在适当的收集interface的许多不同实现中使用相同的方法。本质上,算法是可重用的功能。

除 Java Collections Framework 之外,最著名的 collections 例子还有 C Standard Template Library(STL)和 Smalltalk 的 collection 层次结构。从历史上看,collections 框架非常复杂,这使它们以陡峭的学习曲线而闻名。我们相信 Java Collections Frameworkbreak 了这一传统,因为您将在本章中自己学习。

Java Collections Framework 的好处

Java Collections Framework 具有以下优点:

  • 减少编程工作量: 通过提供有用的数据结构和算法,Collections Framework 使您可以将精力集中在程序的重要部分上,而不必专注于使其工作所需的底层“管道”。通过促进不相关的 API 之间的互操作性,Java Collections Framework 使您无需编写适配器对象或转换代码来连接 API。

  • 提高程序速度和质量: 此 Collections Framework 提供有用数据结构和算法的高性能,高质量实现。每个interface的各种实现都是可以互换的,因此可以通过切换集合实现轻松地调整程序。因为您从编写自己的数据结构的工作中解脱出来,所以您将有更多的时间致力于改善程序的质量和性能。

  • 允许无关 API 之间的互操作性: 集合interface是 API 来回传递集合的白话。如果我的网络 管理API 提供了节点名称的集合,并且如果您的 GUI 工具箱希望包含列标题的集合,则即使它们是独立编写的,我们的 API 也可以无缝地互操作。

  • 减少了学习和使用新 API 的精力: 许多 API 自然会在 Importing 中获取集合并将其提供为输出。过去,每个这样的 API 都有一个小的子 API 专门用于操纵其集合。这些临时集合子 API 之间几乎没有一致性,因此您必须从头开始学习每个 API,并且在使用它们时很容易出错。随着标准收集interface的出现,问题消失了。

  • 减少了设计新 API 的工作: 这是以前优势的另一面。设计人员和实现人员不必在每次创建依赖于集合的 API 时都重新发明轮子。相反,他们可以使用标准的收集interface。

  • 促进软件重用: 符合标准收集interface的新数据结构本质上是可重用的。在实现这些interface的对象上运行的新算法也是如此。