集合框架概览
介绍
Java 平台包含一个集合框架。一个集合是一个包含了一组对象的对象(例如经典的 Vector 类)。集合框架采用了统一的架构来操作各个集合,以便使用操作集合和集合实现细节分离。
集合框架的主要优点如下:
- 通过提供数据结构和算法省去了用户自己设计的功夫,降低了编程难度
- 通过提供数据结构和算法的高性能实现,来增加用户程序性能,用户可以切换不同的实现进行性能调优
- 包装了不相关的 APIs,为用户提供了统一的 APIs
- 省去了用户学习多套 APIs 的麻烦
- 省去了用户自己设计并实现的麻烦
- 通过提供标准的接口增强了软件的可重用性
集合框架由以下内容组成:
- 框架接口,包括常用的 sets,lists 以及 maps
- 通用的实现
- 历史遗留实现,早期的 Vector 和 Hashtable 类均在集合框架中重新实现
- 为特殊情况准备的实现,这些实现没有标准的性能,使用约束
- 并发实现,这些实现是为高并发程序所准备
- 包装实现,功能增强,例如增加了同步效果
- 简便实现,集合接口的高性能的最小实现
- 抽象实现,集合接口的部分实现以便支持用户自定义实现
- 算法,提供了有用的静态方法,例如排序
- 基本设施,未集合接口提供支持的接口
- 数组工具,为原始类型或引用类型数组提供的工具方法
集合接口
集合接口被分成了两组。最基本的接口 java.util.Collection 有两类后代子类:
- java.util.Set
- java.util.SortedSet
- java.util.NavigableSet
- java.util.Queue
- java.util.concurrent.BlockingQueue
- java.util.concurrent.TrasnferQueue
- java.util.Deque
- java.util.concurrent.BlockingDeque
另外一组集合接口继承于 java.util.Map,并且不是真正的集合。但是这些接口也包含了集合方面的操作,其子类有:
- java.util.SortedMap
- java.util.NavigableMap
- java.util.concurrent.ConcurrentMap
- java.util.concurrent.ConcurrentNavigableMap