java進階|ArrayDeque雙端隊列源碼分析

前前后后分析了三遍這個雙端隊列,但是一直沒有去寫一篇文章,中途有些事情給耽擱了,所以這次就來輸出了,這是自己關于分析集合類的第13篇源碼分析的文章,繼續(xù)分析吧。

還是以以往的文章風格先看下類的繼承結構,這樣可以做到心中有數,比較靠譜一點。源碼的設計就是滿足java作為一門高級語言特性所具有的,單繼承以及多實現。

一,像集合類的容器,你就把它想象成裝載數據的集合就行了,我們利用這樣的集合去往其中添加元素,一般都是add()方法,put()方法,offer()方法之類的,這里就看下add()方法的實現原理吧,代碼里面直接給與了說明,這里就不過多介紹了。

二,上面也說過,添加元素除了使用常用的add()方法,一般也會使用offer()這樣的方法,其實調用底層的方法都一樣,這里就繼續(xù)看下offer()的源碼流程吧。

三,對于我來說,個人的感受使用集合類常用的方法除了裝填數據外,集合的數據大小以及是否為空還是比較常用的,這里就看下size()方法和isEmpty()方法的實現吧。

四,既然雙端隊列比一般隊列那么特殊一點,即可以從隊首獲取元素,也可以從隊尾獲取元素,所以這里繼續(xù)看下如何從隊首獲取元素的方法,這里自己看了一下有好幾個都是獲取隊首元素方法的,所以就一次性分析了,區(qū)別就是是否從隊列出來了,是否進行了gc回收。

五,上面介紹的是從隊首獲取元素的,接下來就是從隊尾進行元素獲取的,這里自己也是一次性將從隊尾獲取元素的方法分析完,這算是和自己以后寫文章的方式很像了,一個一個系列的去寫,這樣自己會覺得深入一點比較好一點。

六,比如說我們去判斷一個元素在不在這個集合中,一般都會使用contains()方法或者自己實現一個方法進行判斷。這里看下contains()方法源碼分析吧,很簡單,和以往的分析方式大同小異。

七,一般使用集合,我都會自己去分析一下clear()方法的使用,這樣才會覺得整個集合分析完了。

到這里整個ArrayDeque雙端隊列的源碼分析就結束了,自己就是將大部分常用的方法進行了分析,其它沒有分析的方法,需要的你可以看下,這里就不過多說明了,分析一篇文章確實耗時很長,可能你看這篇文章也就幾分鐘,但是輸出一篇文章卻要花費很長時間,這就是寫文章比較耗時的地方。

我喜歡分享,你喜歡閱讀@WwpwW

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容