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