JDK源码解析之Java.util.Collection
生活随笔
收集整理的這篇文章主要介紹了
JDK源码解析之Java.util.Collection
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Collection是單例集合的頂層接口,它表示一組對象,這些對象也稱為Collection的元素,JDK 不提供此接口的任何直接實(shí)現(xiàn),它提供更具體的子接口(如Set和List)實(shí)現(xiàn)
一、源碼解析
1、接口定義
public interface Collection<E> extends Iterable<E>{}collection繼承自Iterable,所以其有Iterable的所有相關(guān)的方法。
2、查詢方法
// 返回?cái)?shù)組的長度,如果數(shù)組的長度大于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、其他方法
// 返回一個(gè)包含此集合中所有元素的數(shù)組Object[] toArray();// 返回包含此集合中所有元素的數(shù)組; 返回的數(shù)組的運(yùn)行時(shí)類型是指定數(shù)組的運(yùn)行時(shí)類型<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);}// 判斷兩個(gè)集合是否相同boolean equals(Object o);// 獲取集合的hashcodeint hashCode();二、總結(jié)
Collection接口是最基本的集合接口,它在繼承了Iterable接口方法的同時(shí),提供了對集合對象進(jìn)行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實(shí)現(xiàn),在后面我會(huì)向大家一一介紹。
總結(jié)
以上是生活随笔為你收集整理的JDK源码解析之Java.util.Collection的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JAVA知识基础(五):深入理解fina
- 下一篇: 日常问题——Mac下新建目录报Read-