Collection是List接口和Set接口的父接口,继承迭代器Iterable接口
package java.util; import java.util.function.Predicate; import java.util.stream.Stream; import java.util.stream.StreamSupport; public interface Collection<E> extends Iterable<E> { // Query Operations // get方法 查询方法***********************************************************// int size(); // 集合元素容量 boolean isEmpty(); //集合空,返回true boolean contains(Object o);//集合包含对象o,返回true Iterator<E> iterator(); //集合的迭代器 Object[] toArray();//由此集合中所有对象元素构成一个Object数组 <T> T[] toArray(T[] a); //由此集合中所有对象元素构成一个泛型数组 //alter 方法***************************************************************// boolean add(E e);//添加一个对象 boolean remove(Object o);//移除一个对象o //扩展方法******************************************************************// //如果集合c是此集合子集,返回true boolean containsAll(Collection<?> c); //把集合c中所有元素添加到此集合 boolean addAll(Collection<? extends E> c); //删除此集合中 与集合c交集中元素 boolean removeAll(Collection<?> c); //删除此集合中满足给定Predicate的所有元素。迭代期间或Predicate引发的错误或运行时异常将抛到调用方。 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(Collection<?> c); //清空,移除此容器对象所有元素 void clear(); // 比较两个对象地址值hashcode boolean equals(Object o); // get此集合的地址值hashCode int hashCode(); // create可分割迭代器 @Override default Spliterator<E> spliterator(){ return Spliterators.spliterator(this, 0); } // 流 返回以此集合为源的流 default Stream<E> stream(){ return StreamSupport.stream(spliterator(), false); } // 流 返回以此集合为源的并行流 default Stream<E> parallelStream(){ return StreamSupport.stream(spliterator(), true); } }