一、Java集合容器总体框架图
Java集合容器包含了我们开发中常用的几种数据结构:数组、集合、链表、栈和键值对映射等,主要位于java.util包下。基于上面的框架图我们可以发现Java的集合容器类主要是基于两个抽象接口Collection和Map.
Collection是一个高度抽象的接口,他用于标识一个集合,定义了集合的基本操作,主要有四个派生类或接口Queue(队列)、List(集合)、Set(不重复集合)和AbstractCollection(Collection抽象类实现了集合的一些基本操作),它的抽象类AbstractCollection实现了集合Collection定义的基本操作,Queue是一个标识队列接口。它主要有两个分支List和Set,List是一个允许有重复元素的集合,主要的实现类有ArrayList、LinkedList、Vector和Stack;Set不允许重复源,它的的主要实现类有TreeSet和HashSet。
Map是一个保存键值对映射的容器接口,每一个元素包含一个Key和对应的Value。他的抽象类AbstractMap同样实现了Map接口定义的大部分基本操作方法,绝大部分Map派生类都直接继承整个抽象类,除了HashTable,HashTable继承的是Dictionary不过它同样实现了Map接口不过它元素遍历是借助Enumeration进行而非AbstractCollection中的Iterator遍历器。
此外java.util集合容器部分还包含迭代器Iterator和其他类似Arrays和Collections等用于操作集合和容器的工具类。
下面我们会对这些主要的常用的类进行分析