前言
本系列主要写关于Java集合框架的一些细节:包括部分类的内部实现、算法探讨、性能分析、相关设计模式等等。Java8集合类中的部分类(比如常用的HashMap
)内部实现机制已不同于以往,本系列之余也尽可能会纵向比较Java7版本与Java8框架之间的差异所在。
系列文章在追求尽可能的详而细致的描述,难免会有错误不当之处~
集合框架介绍
在Java8 Api文档中是这么描述集合框架的:
A collection is an object that represents a group of objects (such as the classic Vector class). A collections framework is a unified architecture for representing and manipulating collections, enabling collections to be manipulated independently of implementation details.
意在指明Java集合框架总体所需要做的事情:代表并操作各种集合类型。
集合框架有如下几点主要优点[^1]:
- 减少编程工作量[Reduces programming effort]:集合类中提供了大量的数据结构和算法的实现,你无需亲自去编写。
- 提高性能[Increases performance]:提供很多高性能的数据结构以及算法的实现。因许多接口的实现均是通用的[interchangeable],因而可以根据需要实现相应的接口。
- 提供在无关API之间的互通[Provides interoperability between unrelated APIs]:建立一个通用语言来回传递集合类
- 降低学习API的工作量[Reduces the effort required to learn APIs]API:需要学习众多特定[adhoc]集合的API
- 加速软件重用[Fosters software reuse]:为操作它们提供了许多标准化的集合和算法