jdk源碼閱讀Collection詳解
見(jiàn)過(guò)一句夸張的話(huà),叫做“沒(méi)有閱讀過(guò)jdk源碼的人不算學(xué)過(guò)java”。從今天起開(kāi)始精讀源碼。而適合精讀的源碼無(wú)非就是java.io,.util和.lang包下的類(lèi)。
面試題中對(duì)于集合的考察還是比較多的,所以我就先從集合的源碼開(kāi)始看起。
(一)首先是Collection接口。
Collection是所有collection類(lèi)的根接口;Collection繼承了Iterable,即所有的Collection中的類(lèi)都能使用foreach方法。
/**
* Collection是所有collection類(lèi)的根接口;
* Collection繼承了Iterable,即所有的Collection中的類(lèi)都能使用foreach方法。
* @author WGS
* @param <E>
*/
public interface Collection<E> extends Iterable<E> {
//返回集合中元素的大小。(如果此大小值超過(guò)Integer.MAX_VALUE,就直接返回Integer.MAX_VALUE)
int size();
//判斷集合是否為空
Boolean isEmpty();
//判斷集合是否包含元素o(注意元素e是否為null及類(lèi)型是否兼容問(wèn)題)
Boolean contains(Object o);
//返回集合中元素的迭代器(順序不能保證,除非集合指定了順序)
Iterator<E> iterator();
//以數(shù)組的形式返回集合中的所有元素,數(shù)組是安全
Object[] toArray();
//以數(shù)組形式返回指定數(shù)組類(lèi)型的集合元素
<T> T[] toArray(T[] a);
//此方法可用來(lái)判斷集合中是否含有元素e;是-false,否-true(在set,map中會(huì)經(jīng)常調(diào)用這個(gè)方法,在編程題時(shí)很有用)
Boolean add(E e);
//從集合中移除指定的元素
Boolean remove(Object o);
//用來(lái)判斷是否含有指定集合中的所以元素
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詳解的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
- 設(shè)計(jì)模式系列之組合模式及其在JDK和MyBatis源碼中的運(yùn)用詳解
- 源碼解析JDK 1.8 中的 Map.merge()
- jdk動(dòng)態(tài)代理源碼分析過(guò)程
- 基于jdk1.8的Java源碼詳解 Integer
- Java基于JDK 1.8的LinkedList源碼詳析
- JDK源碼分析之String、StringBuilder和StringBuffer
- JDK源碼中一些實(shí)用的“小技巧”總結(jié)
- Java從JDK源碼角度對(duì)Object進(jìn)行實(shí)例分析
- 通過(guò)JDK源碼角度分析Long類(lèi)詳解
- 分析HashMap 的 JDK 源碼
相關(guān)文章
解決在Idea 2020.2下使用 Lombok的注解不生效的問(wèn)題(插件安裝了,依賴(lài)也寫(xiě)了,自動(dòng)注解也設(shè)置了)
這篇文章主要介紹了在Idea 2020.2下使用 Lombok的注解不生效的問(wèn)題(插件安裝了,依賴(lài)也寫(xiě)了,自動(dòng)注解也設(shè)置了),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
JAVA位運(yùn)算的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于JAVA有關(guān)位運(yùn)算的全套梳理,需要的朋友們可以參考學(xué)習(xí)下。2020-03-03
Java中JDK14的新特性之JFR,JMC和JFR事件流(推薦)
JFR是一個(gè)基于事件的低開(kāi)銷(xiāo)的分析引擎,具有高性能的后端,可以以二進(jìn)制格式編寫(xiě)事件,而JMC是一個(gè)GUI工具,用于檢查JFR創(chuàng)建的數(shù)據(jù)文件。本文給大家介紹Java中JDK14的新特性之JFR,JMC和JFR事件流的相關(guān)知識(shí),感興趣的朋友一起看看吧2020-05-05
mybatis報(bào)錯(cuò)元素內(nèi)容必須由格式正確的字符數(shù)據(jù)或標(biāo)記組成異常的解決辦法
今天小編就為大家分享一篇關(guān)于mybatis查詢(xún)出錯(cuò)解決辦法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12
SpringBoot中的@EnableConfigurationProperties注解詳細(xì)解析
這篇文章主要介紹了SpringBoot中的@EnableConfigurationProperties注解詳細(xì)解析,如果一個(gè)配置類(lèi)只配置@ConfigurationProperties注解,而沒(méi)有使用@Component或者實(shí)現(xiàn)了@Component的其他注解,那么在IOC容器中是獲取不到properties 配置文件轉(zhuǎn)化的bean,需要的朋友可以參考下2024-01-01
Java線(xiàn)程安全和鎖Synchronized知識(shí)點(diǎn)詳解
在本篇文章里小編給大家分享的是關(guān)于Java線(xiàn)程安全和鎖Synchronized相關(guān)知識(shí)點(diǎn),有需要的朋友們可以參考下。2019-08-08

