Java集合框架
早在Java2之前, Java就提供了特设类. 比如: Dictionary, Vector, Stack和Properties 这些类用来存储和操作对象组.
虽然这些类都非常有用, 但是它们缺少一个核心的, 统一的主体. 由于这个原因, 使用Vector 类的方式和使用Properties类的方式有着很大的区别.
集合框架被设计成要满足以下几个目标:
- 该框架必须是高性能的. 基本集合(动态数组, 链表, 数, 哈希表) 的实现也必须是高效的.
- 该框架允许不同类型的集合, 以类似的工作方式工作, 具有高度的互操作性.
- 对一个集合的扩展和适应必须是简单的.
为此, 整个集合框架就围绕一组标准接口而设计. 你可以直接使用这些接口的标准实现, 诸如: Linkedlist, HashSet 和TreeSet等,除此之外你也可以通过这些接口实现自己的集合.
从上面的集合框架图可以看到, Java集合框架主要包括两种类型的容器, 一种是集合(Collection), 存储一个元素集合, 另一种是图(Map), 存储键值对映射. Collection 接口又有三种子类型: List, Set和Queue, 再下面是抽象类, 最后是具体实现类, 常用的有: ArrayList, LinkedList, HashSet, LinkedHashSet, HashMap, LinkedHashMap等等.
集合框架是一个用来代表和操纵集合的统一架构. 所有的集合框架都包含如下内容: - 接口: 是代表集合的抽象数据类型. 例如Collection, List, Set, Map等. 之所以定义多个接口, 是为了以不同的方式操作集合对象
- 实现(类): 是集合接口的具体实现. 从本质上讲, 它们是可重复使用的数据结构, 例如: ArrayList, LinkedList, HashSet, HashMap
- 算法: 是实现集合接口的对象里的方法执行的一些有用的计算, 例如: 搜索和排序. 这些算法被称为多态, 那是因为相同的方法可以在相似的接口上有着不同的实现.
除了集合, 该框架也定义了几个Map接口和类. Map里存储的是键值对.尽管Map不是集合, 但是它们完全整合在集合中了.
集合框架体系如图所示:
Java集合框架提供了一套性能优良, 使用方便的接口和类,java集合框架位于java.util包中, 所以当使用集合框架的时候需要进行导包.