描述:
Collection 是最基本的集合接口,一个 Collection 代表一组 Object,即 Collection 的元素, Java不提供直接继承自Collection的类,只提供继承于Collection的子接口(如List和set)。
Collection 接口存储一组不唯一,无序的对象。
Collection 是一个抽象出来的集合接口,包含了集合中的基本操作。
Collection 源码
public interface Collection<E> extends Iterable<E> {
//返回此集合中的元素的数目。
int size();
//返回 true如果集合不包含任何元素。
boolean isEmpty();
//返回 true如果集合包含指定元素。
boolean contains(Object o);
//返回包含此集合中所有元素的数组。
Object[] toArray();
//返回包含此集合中所有元素的数组;指定返回的类型和大小
<T> T[] toArray(T[] a);
//添加一个元素
boolean add(E e);
//从这个集合中移除指定元素的一个实例,如果它是存在的
boolean remove(Object o);
//返回 true如果这个集合包含指定集合的所有元素。
boolean containsAll(java.util.Collection<?> c);
//将指定集合中的所有元素添加到这个集合
boolean addAll(java.util.Collection<? extends E> c);
//删除此集合中包含的所有元素的所有元素。
boolean removeAll(java.util.Collection<?> c);
//删除满足给定谓词的这个集合的所有元素。
//谓词,可以看成是 条件表达式
default boolean removeIf(Predicate<? super E> filter) {
Objects.requireNonNull(filter);
boolean removed = false;
final Iterator<E> each = iterator();
while (each.hasNext()) {
if (filter.test(each.next())) {
each.remove();
removed = true;
}
}
return removed;
}
//仅保留包含在指定集合中的这个集合中的元素(只保留给定集合中的元素,删除其他的元素)
boolean retainAll(java.util.Collection<?> c);
//从这个集合中移除所有的元素
void clear();
//将指定的对象与此集合进行比较。
boolean equals(Object o);
//返回此集合的哈希代码值
int hashCode();
//创建此集合中的元素的 Spliterator
@Override
default Spliterator<E> spliterator() {
return Spliterators.spliterator(this, 0);
}
//返回一个序列 Stream与集合的来源。
default Stream<E> stream() {
return StreamSupport.stream(spliterator(), false);
}
//返回一个可能并行 Stream与集合的来源。
default Stream<E> parallelStream() {
return StreamSupport.stream(spliterator(), true);
}
}
该接口的实现类可以重写实现规则。