Java集合源碼分析之Set概述

這篇文章是本系列的完結(jié)了糕非,也會是讀起來最輕松的文章了立宜。因為這里只有一個概念藕各,那就是Set是什么,其余的則是一些感觸與總結(jié)片效。

Set概述

因為Set的結(jié)構及實現(xiàn)都和Map保持高度一致红伦,這里將不再對其進行分析了,感興趣的朋友可以自行查看源碼淀衣。但我們還是需要知道什么是Set色建,Set是一個包含不可重元素的集合,也就是所有的元素都是唯一的舌缤。還是看下文檔說明吧:

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.

此外Set系列也有SortedSetNavigableSet這種基于排序的接口某残,它們的作用在分析Map時都已經(jīng)詳細介紹過了国撵。

總結(jié)

分析了這么多集合類的源碼之后,最大的感觸并不是玻墅,“哦介牙,原來如此~”,而是驚嘆于作者高度的抽象思維澳厢,嚴謹?shù)拇a环础,以及極其規(guī)范的編碼風格囚似。代碼本身的價值遠遠比不上這種思想帶來的受益,我們應該掌握的是這些原理线得,而不是記住枯燥的代碼實現(xiàn)饶唤。

但驚艷的背后,作者付出的艱辛也是無比巨大的贯钩,其中也飽含辛酸與無奈募狂。創(chuàng)造出那么多的數(shù)據(jù)結(jié)構,不就是為了提高處理數(shù)據(jù)的能力嗎角雷?然而現(xiàn)實是如果想在一方面追求極致祸穷,就必須在其他方面有所妥協(xié),沒有一種結(jié)構能夠讓我們一勞永逸勺三。所以需求無盡雷滚,探索無盡÷鸺幔可還記得在LinkedList中的查詢方法祈远?在這么小的點上,還盡力把查詢速度提升了一半刻蚯,當時真的被這種操作驚艷了绊含,一方面是因為工程師的細膩,另一方面炊汹,可能是因為躬充,“哎,實在做不了更多了~”的感嘆讨便。

在Java的集合類中充甚,大量的依賴于對象的equalshashCode霸褒、clone方法伴找,有些還需要我們實現(xiàn)Comparable接口慰枕。如果對數(shù)據(jù)結(jié)構有所理解友瘤,又清楚集合類用了哪些個數(shù)據(jù)結(jié)構最欠,我想需要實現(xiàn)哪些方法是可以推測出來的溉潭。如果我們能把握這些細節(jié)病游,就能寫出更優(yōu)秀的代碼叽躯。如果我們能掌握這些思想花鹅,就能超脫語言的束縛疙赠,理解軟件設計的精髓旁理。

如果閱讀本系列文章能夠給您帶來一丁點的提升樊零,對我都是莫大的欣慰與鼓勵。

現(xiàn)在孽文,你有把握回答在開篇中提及的幾個問題了嗎驻襟?

上一篇:Java集合源碼分析之Map(六):LinkedHashMap

下一篇:沒有了~


我是飛機醬夺艰,如果您喜歡我的文章,可以關注我~

編程之路沉衣,道阻且長郁副。唯,路漫漫其修遠兮厢蒜,吾將上下而求索霞势。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市斑鸦,隨后出現(xiàn)的幾起案子愕贡,更是在濱河造成了極大的恐慌,老刑警劉巖巷屿,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件固以,死亡現(xiàn)場離奇詭異,居然都是意外死亡嘱巾,警方通過查閱死者的電腦和手機憨琳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旬昭,“玉大人篙螟,你說我怎么就攤上這事∥示校” “怎么了遍略?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長骤坐。 經(jīng)常有香客問我绪杏,道長,這世上最難降的妖魔是什么纽绍? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任蕾久,我火速辦了婚禮,結(jié)果婚禮上拌夏,老公的妹妹穿的比我還像新娘僧著。我一直安慰自己,他們只是感情好障簿,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布盹愚。 她就那樣靜靜地躺著,像睡著了一般卷谈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霞篡,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天世蔗,我揣著相機與錄音端逼,去河邊找鬼。 笑死污淋,一個胖子當著我的面吹牛顶滩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播寸爆,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼礁鲁,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了赁豆?” 一聲冷哼從身側(cè)響起仅醇,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎魔种,沒想到半個月后析二,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡节预,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年叶摄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片安拟。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蛤吓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出糠赦,到底是詐尸還是另有隱情会傲,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布愉棱,位于F島的核電站唆铐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏奔滑。R本人自食惡果不足惜艾岂,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望朋其。 院中可真熱鬧王浴,春花似錦、人聲如沸梅猿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽袱蚓。三九已至钞啸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背体斩。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工梭稚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人絮吵。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓弧烤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蹬敲。 傳聞我的和親對象是個殘疾皇子暇昂,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容