Java集合框架详解(二)——Collection源码分析

来源:互联网 发布:淘宝退换货说明 编辑:程序博客网 时间:2024/06/05 19:09

Collection源码:

package java.util;import java.util.function.Predicate;import java.util.stream.Stream;import java.util.stream.StreamSupport;public interface Collection extends Iterable {//定义长度int size();//是否为空boolean isEmpty();//是否包含某个元素boolean contains(Object o);//返回一个迭代器iteratorIterator iterator();//返回集合中所有元素组成的数组,数组元素的返回顺序要和迭代器访问集合元素的返回顺序一样 Object[] toArray();//返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。 T[] toArray(T[] a);//向集合中添加一个元素,如果集合不允许重复元素,且集合中已经含有该元素,返回falseboolean add(E e);//从此集合中移除一个指定元素,如果集合中存在指定元素,返回trueboolean remove(Object o);//如果此集合中包含指定集合中的所有元素,则返回trueboolean containsAll(Collection c);//将指定集合中的所有元素都添加到此集合中boolean addAll(Collection c);//移除此集合中指定集合的所有元素boolean removeAll(Collection c);default boolean removeIf(Predicate filter) {Objects.requireNonNull(filter);boolean removed = false;final Iterator each = iterator();while (each.hasNext()) {if (filter.test(each.next())) {each.remove();removed = true;}}return removed;}//仅保留此集合中那些也包含在指定集合中的元素boolean retainAll(Collection c);//移除此集合的所有元素void clear();//比较次集合与指定对象是否相等,通过覆盖,实现list与list相等,set与set相等boolean equals(Object o);//返回此集合的哈希值int hashCode();@Overridedefault Spliterator spliterator() {return Spliterators.spliterator(this, 0);}default Stream stream(){return StreamSupport.stream(spliterator(), false);}default Stream parallelStream(){return StreamSupport.stream(spliterator(), true);}}


从源码中可以看出Collection是一个接口,它是一个高度抽象出来的集合,包含了集合的基本操作:添加、删除、清空、遍历、是否为空、获取大小等。