集合介绍
本节介绍Java集合框架,在这里,你将了解集合是什么以及它们如何使你的工做更轻松、程序更好,你将了解构成Java集合框架的核心元素 — 接口、实现、聚合操做和算法。算法
集合 — 有时称为容器 — 只是一个将多个元素组合到一个单元中的对象,集合用于存储、检索、操做和传递聚合数据。一般,它们表明造成天然组的数据项,例如扑克牌(卡片集合)、邮件文件夹(信件集合)或电话目录(名称到电话号码的映射),若是你使用过Java编程语言 — 或者几乎任何其余编程语言 — 你已经熟悉了集合。编程
什么是集合框架
集合框架是用于表示和操做集合的统一体系结构,全部集合框架都包含如下内容:segmentfault
- 接口:这些是表示集合的抽象数据类型,接口容许独立于其表示的细节来操纵集合,在面向对象语言中,接口一般造成层次结构。
- 实现:这些是集合接口的具体实现,实质上,它们是可重用的数据结构。
- 算法:这些是对实现集合接口的对象执行有用计算(如搜索和排序)的方法,算法被认为是多态的:也就是说,相同的方法能够用于适当的集合接口的许多不一样实现,实质上,算法是可重用的功能。
除了Java集合框架以外,最著名的集合框架示例是C++标准模板库(STL)和Smalltalk的集合层次结构,从历史上看,集合框架至关复杂,这使得它们难以学习,咱们相信Java集合框架打破了这一传统,由于你将在本章中自学。网络
Java集合框架的优势
Java集合框架提供如下好处:数据结构
- 减小编程工做量:经过提供有用的数据结构和算法,集合框架可让你专一于程序的重要部分,而不是使其工做所需的低级“设施”,经过促进不相关API之间的互操做性,Java集合框架使你无需编写适配器对象或转换代码来链接API。
- 提升程序速度和质量:此集合框架提供有用的数据结构和算法的高性能、高质量实现,每一个接口的各类实现是可互换的,所以能够经过切换集合实现来轻松调整程序,由于你没有编写本身的数据结构的苦差事,因此你将有更多的时间用于改进程序的质量和性能。
- 容许不相关的API之间的互操做性:集合接口是API来回传递集合的术语,若是个人网络管理API提供了一组节点名称,而且你的GUI工具包须要一组列标题,那么咱们的API将无缝地互操做,即便它们是独立编写的。
- 减小学习和使用新API的工做量:许多API天然地在输入上收集集合并将它们做为输出提供,过去,每一个这样的API都有一个专门用于操做其集合的小型子API,这些ad hoc集合子API之间几乎没有一致性,所以你必须从头开始学习每个,而且在使用它们时很容易出错,随着标准集合接口的出现,问题就消失了。
- 减小设计新API的工做量:这是以前的优点的另外一面,设计人员和实施人员每次建立依赖于集合的API时都没必要从新发明轮子,相反,他们可使用标准的集合接口。
- 促进软件重用:符合标准集合接口的新数据结构本质上是可重用的,对于实现这些接口的对象进行操做的新算法也是如此。