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

什么是集合框架?

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

  • 接口:这些是代表集合的抽象数据类型。接口允许独立于其表示的细节来操纵集合。在面向对象的语言中,接口通常形成层次结构。
  • 实现:这些是collection接口的具体实现。本质上,它们是可重用的数据结构。
  • 算法:这些是对实现集合接口的对象执行有用的计算(例如搜索和排序)的方法。这些算法是多态的:也就是说,可以在适当的集合接口的许多不同实现中使用相同的方法。本质上,算法是可重用的功能。

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

Java Collections Framework的优点

Java Collections Framework具有以下优点:

  • 减少编程工作量:通过提供有用的数据结构和算法,Collections Framework使您可以将精力集中在程序的重要部分上,而不必专注于使其工作所需的低级“管道”。通过促进不相关的API之间的互操作性,Java Collections Framework使您无需编写适配器对象或转换代码来连接API。
  • 提高程序速度和质量:Collections Framework提供有用数据结构和算法的高性能,高质量实现。每个接口的各种实现都是可以互换的,因此可以通过切换集合实现轻松地调整程序。因为您从编写自己的数据结构的繁琐工作中解放了出来,所以您将有更多的时间致力于改善程序的质量和性能。
  • 允许无关API之间的互操作性:集合接口是API来回传递集合的本地语言。如果我的网络管理API提供了节点名称的集合,并且如果您的GUI工具箱希望包含列标题的集合,则即使它们是独立编写的,我们的API也将无缝地互操作。
  • 减少学习和使用新API的工作量:许多API自然会从输入中获取集合并将其提供为输出。过去,每个这样的API都有一个小的子API专门用于操纵其集合。这些临时集合子API之间几乎没有一致性,因此您必须从头开始学习每个API,并且在使用它们时很容易出错。随着标准集合接口的出现,问题消失了。
  • 减少了设计新API的工作量:这是先前优势的另一面。设计人员和实现人员不必在每次创建依赖于集合的API时都重新发明轮子。相反,他们可以使用标准的集合接口。
  • 促进软件重用:符合标准集合接口的新数据结构本质上是可重用的。在实现这些接口的对象上运行的新算法也是如此。