6.类集框架
6.1类集接口
首先讨论类集接口的目的:是因为它决定了Collection类的基本特性
接口 | 描述 |
Collection | 能操作对象组,它位于类集层次结构的顶层 |
List | 扩展Collection去处理序列(对象的列表) |
Set | 扩展Collection去处理集合,集合必须包含唯一元素 |
SortedSet | 扩展Set去处理排序集合 |
6.1.1Collection接口
方法 | 描述 |
boolean add(Object obj) | 将obj加入到调用类集中。如果obj被加入的类集中了,则返回true;如果obj是类集中的成员或类集不能被复制时,则返回false; |
boolean addAll(Collection c) | 将c中的所有元素都加入到调用类集中,如果操作成功(元素被加入了),则返回true;否则返回false; |
void clear() | 从调用类集中删除所有的元素。 |
boolean contains(Object obj) | 如果obj是调用类集中的一个元素,则返回true;否则返回false; |
boolean containsAll(Collection c) | 如果调用类集中包含了c中的所有元素,则返回true;否则返回false; |
boolean equal(Object obj) | 如果调用类集与obj相等,则返回true;否则返回false; |
int hashCode() | 返回调用类集的散列码 |
boolean isEmpty() | 如果调用类集是空的,则返回true;否则返回false; |
Iterator iterator() | 返回调用类集的迭代程序 |
Boolean remove(Object obj) | 从调用类集中删除obj的一个实例,如果这个元素被删除了,则返回true;否则返回false; |
Boolean removeAll(Collection c) | 从调用类集中删除c的所有元素,如果被删除了,则返回true;否则返回false; |
Boolean retainAll(Collection c) | 删除类集中除了包含在c中的所有元素,如果被删除了,则返回true;否则返回false; |
int size() | 返回调用类集中元素的个数 |
Object[] toArray() | 返回一个数组,该数据饮食了调用类集中的所有元素,数组元素是类集元素的一个拷贝。 |
Object[] toArray(Object array[]) | 返回一个数组,该数组仅包含了那些类型与数组元素类型匹配的类集元素。数组元素是类集元素的拷贝。如果array的大小与匹配的元素个数相等,它们都会被返回到array;如果array大小与匹配元素个数小,将分配并返回一个大小与所需相等的新数组,如果array的大小与所需元素的大小大,在数组中,在类集元素之后的单元被置为null。如果任一类集元素的类型都不是array的子类型,则会引发一个ArrayStoredException异常。 |
6.1.2List接口
List接口扩展了Collection并声明存储一系列元素的类集特性。使用一个基本0的下标,元素可以通过它们在列表中的位置被插入和访问。一个列表可以包含复制元素。除了Collection定义的方法之外,List还定义了一些它自己的方法。
方法 | 描述 |
void add(int index, Object obj) | 将obj插入到调用列表,插入的位置有index传递。任何已存在的,在插入点,插入点之后的元素都会后移。因此没有元素被覆盖。 |
Boolean addAll(int index, Collection c) | 将c插入到调用列表中。 |
ListIterator listIterator() | 返回调用列表的开始的迭代程序。 |
ListIterator listIterator(int index) | 返回调用列表在指定下标处开始的迭代程序。 |
Object remove(int index) | 删除调用列表中index位置的元素,并返回该元素。删除后,列表被压缩,也就是说被删除后面的元素下标减一。 |
Object set(int index, Object obj) | 用obj对调用列表内由index指定的位置进行赋值。 |
List subList(int start, int end) | 返回一个调用列表,该列表包含了调用列表中从start到end-1的元素。返回的列表元素也被调用列表引用。 |
6.1.3集合接口
集合接口定义了一个集合。它扩展了Collection并说明不允许复制元素的类集特性。因此如果试图将复制元素加到集合中,add()方法将返回false.它本身并没有任何定义附加的方法。
6.1.4SortedSet接口
SortedSet接口扩展了Set并说明了按升序排列的集合的特性。
方法 | 描述 |
Comparator comparator() | 返回被调用集合的比较函数,如果对该集合使用自然顺序,则返加null |
Object first() | 返回调用被排序集合的第一个元素。 |
SortedSet headSet(Object end) | 返回一个包含那些小于end的元素的SortedSet,那些元素包含在调用排序集合中。返回被排序集合中的元素也被调用被排序集合所引用。 |
Object last() | 返回调用被排序集合的最后一个元素。 |
SortedSet subSet(Object start, Object end) | 返回一个SortedSet,它包含了从start到end-1的元素。返回类集中的元素也被调用对象所引用。 |
SortedSet tailSet(Object start) | 返回一个SortedSet, 它包含了那些在分类集合中大于start的元素。 |
6.2Collection接口
Collection实现类
类 | 描述 |
AbstractCollection | 实现大多数的Collection接口 |
AbstractList | 扩展AbstractCollection并实现大多数List的接口 |
AbstractSequentialList | 为了被类集使用并扩展AbstractList,该类集是连续而不是随机方式访问元素 |
LinkedList | 通过扩展AbstractSequentialList来实现链接表 |
ArrayList | 通过扩展AbstractList来实现动态数组 |
AbstractSet | 扩展AbstractCollection来实现大多数的Set接口 |
HashSet | 为了使用散列表而扩展AbstractSet |
TreeSet | 实现存储在树中的集合。扩展AbstractSet |