Java集合框架中有两个基本接口:Collection和Map。 而Collection接口有三个子接口:List、Set、Queue。
因此Java中的集合类主要可以分为四类,分别是:List、Set、Queue以及Map。其中List、Set、Queue都是单一元素的集合,而Map中存储的是键值对。
在Java中还存在一种特殊的数据结构——栈(Stack);从Java1.0版本开始,标准类库中就包含了Stack类,但是Stack类扩展了Vector类,而Vector类又实现了List接口,所以Stack类也包含在List中。
从继承关系上讲,List、Set、Queue这三个接口都是Collection的子接口,而Collection接口又是Iterable的子接口;我们知道,for each
循环可以处理任何实现了Iterable接口的对象,因此,List、Set、Queue这三类集合都可以使用for each
循环遍历,也可以使用迭代器遍历。
List接口是一个有序集合,元素会增加到容器中的特定位置。这里的有序是指在向List中插入元素时,插入的顺序是可以保持的。List可以通过两种方式访问元素: 使用迭代器访问,或者使用一个整数索引来访问。
Set相对于List来说,是无序的,并且不允许出现重复的元素,需要适当的定义Set(集)的equals
方法:只要两个集包含的元素相同就认为它们是相等的,而不要求这些元素有同样的顺序。hashCode方法的定义要保证包含元素相同的两个集会得到相同的散列码。