Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。如图所示是Collection接口、子接口及其实现类的继承树。
如图所示是Map体系的继承树,所有的Map实现类用于保存具有映射关系的数据。
对于上面两图中粗线标识的4个接口,可以把Java所有集合分成三大类,其中Set集合类似于一个罐子,把一个对象添加到Set集合时,Set集合无法记住添加这个元素的顺序,所以Set里的元素不能重复(否则系统无法准确识别这个元素);List集合非常像一个数组,它可以记住每次添加元素的顺序、且List的长度可变。Map集合也像一个罐子,只是它里面的每项数据都由两个值组成。下图显示了这三种集合的示意图。
对于Set、List、Queue和Map四种集合,最常用的实现类在图中以灰色背景色覆盖,分别是HashSet、TreeSet、ArrayList、ArrayDeque、LinkedList和HashMap、TreeMap等实现类。