jdk源碼閱讀Collection詳解
見過一句夸張的話,叫做“沒有閱讀過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();
//以數(shù)組的形式返回集合中的所有元素,數(shù)組是安全
Object[] toArray();
//以數(shù)組形式返回指定數(shù)組類型的集合元素
<T> T[] toArray(T[] a);
//此方法可用來判斷集合中是否含有元素e;是-false,否-true(在set,map中會經(jīng)常調(diào)用這個方法,在編程題時很有用)
Boolean add(E e);
//從集合中移除指定的元素
Boolean remove(Object o);
//用來判斷是否含有指定集合中的所以元素
Boolean containsAll(Collection<?> c);
//將指定集合中的所有元素添加至調(diào)用者的集合中
Boolean addAll(Collection<? extends E> c);
//移除與指定集合相同的元素(即移除兩集合交集部分)
Boolean removeAll(Collection<?> c);
//保留與指定集合中相同的元素(即移除與指定集合不同的元素)
Boolean retainAll(Collection<?> c);
//清空集合
void clear();
//判斷與指定元素是否相等
Boolean equals(Object o);
//返回集合的哈希碼值
int hashCode();
}
總結(jié)
以上就是本文關(guān)于jdk源碼閱讀Collection詳解的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
相關(guān)文章
Spring mvc結(jié)果跳轉(zhuǎn)方法詳解
這篇文章主要介紹了Spring mvc結(jié)果跳轉(zhuǎn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03
基于java servlet過濾器和監(jiān)聽器(詳解)
下面小編就為大家?guī)硪黄趈ava servlet過濾器和監(jiān)聽器(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Struts2攔截器Interceptor的原理與配置實例詳解
攔截器是一種AOP(面向切面編程)思想的編程方式.它提供一種機制是開發(fā)者能夠把相對獨立的代碼抽離出來,配置到Action前后執(zhí)行。下面這篇文章主要給大家介紹了關(guān)于Struts2攔截器Interceptor的原理與配置的相關(guān)資料,需要的朋友可以參考下。2017-11-11
SpringBoot+Mybatis-plus+shardingsphere實現(xiàn)分庫分表的方案
實現(xiàn)億級數(shù)據(jù)量分庫分表的項目是一個挑戰(zhàn)性很高的任務(wù),下面是一個基于Spring Boot的簡單實現(xiàn)方案,感興趣的朋友一起看看吧2024-03-03

