1. util
JavaSE
  • rt.jar
    • java
      • io
        • Serializable
      • lang
        • Iterable.java
        • String.java
      • util
        • ArrayList
        • Collection
        • List
        • Iterator
  1. util

Collection

包和依赖
package java.util;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
类备注
集合层次结构中的根接口。一个集合代表一组对象,称为其元素。有些集合允许重复元素,有些则不允许。有些是有序的,有些是无序的。JDK 没有提供此接口的任何直接实现:它提供了更具体的子接口(如 Set 和 List)的实现。此接口通常用于在需要最大通用性的情况下传递和操作集合。
包或多重集(可能包含重复元素的无序集合)应直接实现此接口。
所有通用 Collection 实现类(通常通过其某个子接口间接实现 Collection)都应提供两个“标准”构造函数:一个 void(无参数)构造函数,用于创建空集合;以及一个带有单个 Collection 类型参数的构造函数,用于创建与其参数具有相同元素的新集合。实际上,后一个构造函数允许用户复制任何集合,生成所需实现类型的等效集合。无法强制执行此约定(因为接口不能包含构造函数),但 Java 平台库中的所有通用 Collection 实现都遵守此约定。
此接口中包含的“破坏性”方法,即修改它们所操作的集合的方法,被指定为如果此集合不支持该操作,则抛出 UnsupportedOperationException。如果是这种情况,如果调用对集合没有影响,这些方法可以(但不是必须)抛出 UnsupportedOperationException。例如,在不可修改的集合上调用 addAll(Collection) 方法时,如果要添加的集合为空,可以(但不是必须)抛出该异常。
一些集合实现对它们可能包含的元素有限制。例如,一些实现禁止空元素,一些对其元素的类型有限制。尝试添加不符合条件的元素会引发未经检查的异常,通常是 NullPointerException 或 ClassCastException。尝试查询不符合条件的元素是否存在可能引发异常,或者可能仅返回 false;一些实现会表现出前一种行为,一些会表现出后一种行为。更一般地说,尝试对不符合条件的元素执行操作,如果该操作的完成不会导致将不符合条件的元素插入集合,则可能引发异常或可能成功,这取决于实现的选项。此类异常在此接口的规范中标记为“可选”。
由每个集合决定其自己的同步策略。在实现没有提供更强保证的情况下,对正在被另一个线程修改的集合调用任何方法可能导致未定义的行为;这包括直接调用、将集合传递给可能执行调用的方法,以及使用现有迭代器检查集合。
集合框架接口中的许多方法是根据 Object.equals(Object) 方法定义的。例如,contains(Object o) 方法的规范说:“当且仅当此集合包含至少一个元素 e 满足 (o==null ? e==null : o.equals(e)) 时返回 true。” 不应将此规范解释为暗示使用非空参数 o 调用 Collection.contains 将导致为任何元素 e 调用 o.equals(e)。实现可以自由地实施优化,从而避免 equals 调用,例如,首先比较两个元素的哈希码。(Object.hashCode() 规范保证哈希码不相等的两个对象不可能相等。)更一般地说,各种集合框架接口的实现可以自由地利用底层 Object 方法的指定行为,只要实现者认为合适即可。
一些对集合执行递归遍历的集合操作可能会因为自引用实例(集合直接或间接包含自身)而失败并引发异常。这包括 clone()、equals()、hashCode() 和 toString() 方法。实现可以选择性地处理自引用场景,但大多数当前实现不这样做。
此接口是 Java 集合框架的成员。
实现要求:默认方法实现(无论是继承的还是其他方式)不应用任何同步协议。如果 Collection 实现具有特定的同步协议,则它必须覆盖默认实现以应用该协议。
始于:1.2
另请参阅:Set、List、Map、SortedSet、SortedMap、HashSet、TreeSet、ArrayList、LinkedList、Vector、Collections、Arrays、AbstractCollection
作者:Josh Bloch、Neal Gafter
类型参数:<E> – 此集合中元素的类型
接口
public interface Collection<E> extends Iterable<E> {}

查询操作#

修改操作#

批量操作#

上一页
ArrayList
下一页
List
Built with