見過一句誇張的話,叫做“沒有閱讀過jdk源碼的人不算學過java”。從今天起開始精讀源碼。而適合精讀的源碼無非就是java.io,.util和.lang包下的類。
面試題中對於集合的考察還是比較多的,所以我就先從集合的源碼開始看起。
(一)首先是Collection接口。
Collection是所有collection類的根接口;Collection繼承了Iterable,即所有的Collection中的類都能使用foreach方法。
/** * Collection是所有collection類的根接口; * Collection繼承了Iterable,即所有的Collection中的類都能使用foreach方法。 * @author WGS * @param <E> */public interface Collection<E> extends Iterable<E> {//返回集合中元素的大小。 (如果此大小值超過Integer.MAX_VALUE,就直接返回Integer.MAX_VALUE) int size();//判斷集合是否為空Boolean isEmpty();//判斷集合是否包含元素o(注意元素e是否為null及類型是否兼容問題) Boolean contains(Object o);//返回集合中元素的迭代器(順序不能保證,除非集合指定了順序) Iterator<E> iterator();//以數組的形式返回集合中的所有元素,數組是安全Object[] toArray();//以數組形式返回指定數組類型的集合元素<T> T[] toArray(T[] a);//此方法可用來判斷集合中是否含有元素e;是-false,否-true(在set,map中會經常調用這個方法,在編程題時很有用) Boolean add(E e);//從集合中移除指定的元素Boolean remove(Object o);//用來判斷是否含有指定集合中的所以元素Boolean containsAll(Collection<?> c);//將指定集合中的所有元素添加至調用者的集合中Boolean addAll(Collection<? extends E> c);//移除與指定集合相同的元素(即移除兩集合交集部分) Boolean removeAll(Collection<?> c);//保留與指定集合中相同的元素(即移除與指定集合不同的元素) Boolean retainAll(Collection<?> c);//清空集合void clear();//判斷與指定元素是否相等Boolean equals(Object o);//返回集合的哈希碼值int hashCode();}總結
以上就是本文關於jdk源碼閱讀Collection詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!