在Java类库中,集合类的基本接口是Collection接口。
Collection 表示一组对象,这些对象也称为 Collection 的元素。一些 Collection 允许有重复的元素,而另一些则不允许。一些collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接实现:它提供更具体的子接口(如 Queue、Set 和 List)实现。此接口通常用来传递 Collection,并在需要最大普遍性的地方操作这些 Collection。
由具体的 Collection类 来确定其自身的同步策略。在没有实现的情况下,调用由另一进程正在更改的 Collection 的方法可能会出现不确定行为,这包括直接调用、将 collection 传递给可能执行调用的方法以及使用现有迭代器检查 collection。
public interface Collection<E>
extends Iterable<E>
Collection继承自java.lang.Iterable接口,实现Iterable接口的对象能成为foreach语句的目标,不用下标就可以遍历对象里的元素。
java.lang.Iterable接口只有一个方法: Iterator<T> iterator( ) 能返回一个在一组T类型的元素上进行迭代的迭代器。
java.util.Iterator接口是一个对 Collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
- 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
- 方法名称得到了改进。
boolean hasNext( ) | 如果仍有元素可以迭代,则返回 true。 |
E next( ) | 返回迭代的下一个元素。 |
void remove( ) | 从迭代器指向的 Collection 中移除迭代器返回的最后一个元素(可选操作)。 每次调用 next 只能调用一次此方法。 |
-------------------------------------------集合框架的接口---------------------------------------------
-------------------------------------------------集合框架中的具体类----------------------------------------------
----------------------------------------------Collection接口中的方法---------------------------------
int size( ) | 返回此 collection 中的元素数。 |
boolean isEmpty( ) | 如果此 collection 不包含元素,则返回 true |
void clear( ) | 移除此 collection 中的所有元素。 |
Iterator<E> iterator( ) | 返回在此 collection 的元素上进行迭代的迭代器。 关于元素返回的顺序没有任何保证(除非此 collection 是某个能提供保证顺序的类实例)。 |
Object[ ] toArray( ) | 返回包含此 collection 中所有元素的数组。 如果 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。 返回的数组将是“安全的”,因为此 collection 并不维护对返回数组的任何引用。调用者可以随意修改返回的数组。此方法充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。 |
<T> T[ ] toArray(T[ ] a) | 返回包含此 collection 中所有元素的数组; 如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将分配一个具有此 collection 大小的新数组。 如果指定的数组能容纳 collection,并有剩余空间,那么会将数组中紧接 collection 尾部的元素设置为 null。(只有 在调用者知道此 collection 没有包含任何 null 元素时才能用此方法确定 collection 的长度。)如果此 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。 |
boolean add(E e) | 如果此 collection 的内容由于调用add方法而发生更改,则返回 true。(如果此 collection 不允许有重复元素,并且已经包含了指定的元素,则返回 false。) 支持此操作的 collection 可以限制哪些元素能添加到此 collection 中来。 |
boolean addAll(Collection<? extends E> c) | 将指定 collection 中的所有元素都添加到此 collection 中。 |
boolean remove(Object o) | 从此 collection 中移除指定元素的单个实例。 更确切地讲,如果此 collection 包含一个或多个满足 (o==null ? e==null : o.equals(e)) 的元素 e,则移除这样的元素。 如果此 collection 包含指定的元素(或者此 collection 由于调用而发生更改),则返回 true 。 |
boolean removeAll(Collection<?> c) | 移除此 collection 中那些也包含在指定 collection 中的所有元素。此调用返回后,collection 中将不包含任何与指定 collection 相同的元素。 |
boolean contains(Object o) | 如果此 collection 包含指定的元素,则返回 true。 更确切地讲,当且仅当此 collection 至少包含一个满足 (o==null ? e==null : o.equals(e)) 的元素 e 时,返回 true。 |
boolean containsAll(Collection<?> c) | 如果此 collection 包含指定 collection 中的所有元素,则返回 true。 |
boolean retainAll(Collection<?> c) | 仅保留此 collection 中那些也包含在指定 collection 的元素。 换句话说,移除此 collection 中未包含在指定 collection 中的所有元素。 |
boolean equals(Object o) | 比较此 collection 与指定对象是否相等。 Object.equals 方法的常规协定声称相等必须是对称的(换句话说,当且仅当存在 b.equals(a) 时,才存在 a.equals(b))。 List.equals 和 Set.equals 的协定声称列表只能与列表相等,set 只能与 set 相等。 |
int hashCode( ) | 返回此 collection 的哈希码值。 |