Collection
实现
AbstractCollection
List
Set
Queue
接口概述
- 集合框架的根接口
- 部分集合允许重复元素,部分集合有序
- JDK不提供此接口直接实现,实现类通过实现Collection的子接口间接实现
- 实现类应提供两个构造函数:无参构造和具有单个Collection类型参数的构造
- 实现类不支持的操作会抛出UnsupportedOperationException
- 实现类可能对包含的元素有限制(null限制或者类型限制等)
- 实现类决定同步策略
- 很多方法都是基于equals()方法定义的
- 执行递归遍历的操作可能会失败
接口方法
int size()
boolean isEmpty()
boolean contains(Object o)
Iterator<E> iterator()
Object[] toArray()
<T> T[] toArray(T[] a)
boolean add(E e)
boolean remove(Object o)
boolean containsAll(Collection<?> c)
boolean addAll(Collection<? extends E> c)
boolean removeAll(Collection<?> c)
default boolean removeIf(Predicate<? super E> filter)
boolean retainAll(Collection<?> c)
void clear()
boolean equals(Object o)
int hashCode()
default Spliterator<E> spliterator()
default Stream<E> stream()
default Stream<E> parallelStream()
抽象实现 AbstractCollection
两个抽象方法,其余实现都是间接通过调用这两个方法实现
public abstract Iterator<E> iterator()
public abstract int size()