集合框架(Collection Framework)是Java最强大的子系统之一,位于java.util 包中。集合框架是一个复杂的接口与和类层次,提供了管理对象组的最新技术。Java集合框架标准化了程序处理对象组的方式。
集合框架在设计上需要满足几个目标。首先,框架必须是高性能的。基本集合(动态数组、链表、树以及哈希表)的实现是高效率的。很少需要手动编写这些数据引擎中的某一个。其次,框架必须允许不同类型的集合以类似的方式进行工作,并且具有高度的互操作性。再次,扩展或改造必须易于实现。为了满足这些目标,整个集合框架基于一套标准接口进行构造,提供了这些接口的一些可以直接使用的标准实现(如LinkedList、HashSet和TreeSet)。作为一种选择,也可以实现自己的集合。为了方便,提供各种特定目的的实现。最后,必须添加可以将标准数组集成到集合框架中的机制。
算法是集合机制的另外一个重要组成部分。算法操作集合,并且被定义为Collections类中的静态方法。因此,所有集合都可以使用它们。
与集合框架密切相关的另一个内容是 Iterator 接口。迭代器为访问集合中的元素提供了通用、标准的方式,每次访问一个元素。因为每个集合都提供了迭代器,所以可以通过Iterator定义的方法访问所有集合类的元素。
Collection接口是构建集合框架的基础,因为定义集合的所有类都必须实现该接口,Collection是泛型接口
public interface Collection<E> extends Iterable<E>其中,E指定了集合中存储的对象类型。Collection接口扩展了 Iterator 接口。
方法 | 说明 |
---|---|
boolean add(E e) |
确保此集合包含指定的元素(可选操作)。 |
boolean addAll(Collection<? extends E> c) |
将指定集合中的所有元素添加到此集合(可选操作)。 |
void clear() |
从此集合中删除所有元素(可选操作)。 |
boolean contains(Object o) |
如果此集合包含指定的元素,则返回 true 。 |
boolean containsAll(Collection<?> c) |
如果此集合包含指定 集合中的所有元素,则返回true。 |
boolean equals(Object o) |
将指定的对象与此集合进行比较以获得相等性。 |
int hashCode() |
返回此集合的哈希码值。 |
boolean isEmpty() |
如果此集合不包含元素,则返回 true 。 |
boolean remove(Object o) |
从该集合中删除指定元素的单个实例(如果存在)(可选操作)。移除返回true |
boolean removeAll(Collection<?> c) |
删除指定集合中包含的所有此集合的元素(可选操作)。 |
default boolean removeIf(Predicate<? super E> filter) |
删除满足给定谓词的此集合的所有元素。 |
boolean retainAll(Collection<?> c) |
仅保留此集合中包含在指定集合中的元素(可选操作)。 |
int size() |
返回此集合中的元素数。 |
Object[] toArray() |
返回一个包含此集合中所有元素的数组。 |
<T> T[] toArray(T[] a) |
返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型。 |
方法详细信息
-
toArray
Object[] toArray()
返回一个包含此集合中所有元素的数组。 如果此集合对其迭代器返回的元素的顺序做出任何保证,则此方法必须以相同的顺序返回元素。返回的数组将是“安全的”,因为该集合不保留对它的引用。 (换句话说,这个方法必须分配一个新的数组,即使这个集合是由数组支持的)。 因此,调用者可以自由地修改返回的数组。此方法充当基于阵列和基于集合的API之间的桥梁。结果一个包含此集合中所有元素的数组
-
clear
void clear()
从此集合中删除所有元素(可选操作)。 此方法返回后,集合将为空。异常 UnsupportedOperationException
- 如果此 集合不支持clear操作
-
add
boolean add(E e)
确保此集合包含指定的元素(可选操作)。 如果此集合由于调用而更改,则返回true 。 (如果此集合不允许重复,并且已包含指定的元素,则返回false。 )支持此操作的集合可能会限制可能添加到此集合的元素。 特别是一些集合拒绝添加null种元素,和其他人将强加可添加元素的类型限制。 收集类应在其文档中明确说明可能添加哪些元素的限制。
如果一个集合拒绝添加一个特定的元素,除了它已经包含该元素之外,它必须抛出异常(而不是返回false )。 这保留了一个集合在此调用返回后始终包含指定元素的不变量。
- 参数
e
- 要确保在此集合中的存在的元素 - 结果 true如果此集合由于调用而更改
- 异常
UnsupportedOperationException
- 如果此 集合不支持add操作ClassCastException
- 如果指定元素的类阻止将其添加到此集合NullPointerException
- 如果指定的元素为空,并且该集合不允许空元素IllegalArgumentException
- 如果元素的某些属性阻止其添加到此集合IllegalStateException
- 如果由于插入限制,此时无法添加该元素