Collection是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素,JDK 不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
一、源码解析
1、接口定义
public interface Collection<E> extends Iterable<E>{}
collection继承自Iterable,所以其有Iterable的所有相关的方法。
2、查询方法
// 返回数组的长度,如果数组的长度大于Integer最大值,返回Integer最大值。int size();// 判断该集合是否为有元素boolean isEmpty();// 判断元素o是否在集合中boolean contains(Object o);// 获取集合的交集,如果集合有改变那么返回为true,否则返回为false。boolean containsAll(Collection<?> c);
3、操作集合元素的方法
// 将元素E添加到该集合中boolean add(E e);// 将集合c添加到该集合中boolean addAll(Collection<? extends E> c);// 将该集合清空void clear();// 从集合中删除o元素boolean remove(Object o);// 从集合中删除c集合boolean removeAll(Collection<?> c); // 仅保留该集合中那些也包含在指定集合c中的元素boolean retainAll(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;}
4、其他方法
// 返回一个包含此集合中所有元素的数组Object[] toArray();// 返回包含此集合中所有元素的数组; 返回的数组的运行时类型是指定数组的运行时类型<T> T[] toArray(T[] a);// 获取集合的流,返回可能并行的以此集合作为源的Streamdefault Stream<E> stream() {return StreamSupport.stream(spliterator(), false);}// 获取集合的并行default Stream<E> parallelStream() {return StreamSupport.stream(spliterator(), true);}// 获取迭代器Itertorpublic abstract Iterator<E> iterator();// 返回集合的Spliteratordefault Spliterator<E> spliterator() {return Spliterators.spliterator(this, 0);}// 判断两个集合是否相同boolean equals(Object o);// 获取集合的hashcodeint hashCode();
二、总结
Collection接口是最基本的集合接口,它在继承了Iterable接口方法的同时,提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现,在后面我会向大家一一介绍。