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 類庫中有很多具體的實現,在后面我會向大家一一介紹。