Java集合干貨系列-集合總體大綱

前言

Java集合是java提供的工具包,包含了常用的數(shù)據(jù)結(jié)構(gòu):集合双肤、鏈表施掏、隊列、棧茅糜、數(shù)組其监、映射等。Java集合工具包位置是java.util.*
Java集合主要可以劃分為4個部分:List列表限匣、Set集合抖苦、Map映射、工具類(Iterator迭代器米死、Enumeration枚舉類锌历、Arrays和Collections)。
Java集合工具包框架圖(如下):

正文

看上面的框架圖峦筒,先抓住它的主干究西,即Collection和Map。

Collection接口物喷、子接口以及實現(xiàn)類

Collection接口

  • 是List卤材、Set和Queue接口的父接口
  • 定義了可用于操作List遮斥、Set和Queue的方法-增刪改查

Collection接口API中定義的方法如下:

List接口

  • List是元素有序并且可以重復(fù)的集合,被稱為序列
  • List可以精確的控制每個元素的插入位置扇丛,或刪除某個位置元素
  • List接口的常用子類:
    ArrayList
    LinkedList
    Vector
    Stack

下圖是List的JDK源碼UML圖术吗。

Set接口

  • Set接口中不能加入重復(fù)元素,無序
  • Set接口常用子類:
    散列存放:HashSet
    有序存放:TreeSet

下圖是Set的JDK源碼UML圖帆精。

Map和HashMap

Map接口

  • Map提供了一種映射關(guān)系较屿,其中的元素是以鍵值對(key-value)的形式存儲的,能夠?qū)崿F(xiàn)根據(jù)key快速查找value
  • Map中的鍵值對以Entry類型的對象實例形式存在
  • 鍵(key值)不可重復(fù)卓练,value值可以
  • 每個建最多只能映射到一個值
  • Map接口提供了分別返回key值集合隘蝎、value值集合以及Entry(鍵值對)集合的方法
  • Map支持泛型,形式如:Map<K,V>

HashMap類

  • HashMap是Map的一個重要實現(xiàn)類襟企,也是最常用嘱么,基于哈希表實現(xiàn)
  • HashMap中的Entry對象是無序排列的
  • Key值和Value值都可以為null,但是一個HashMap只能有一個key值為null的映射(key值不可重復(fù))

下圖是Map的JDK源碼UML圖

Comparable和Comparator

Comparable接口——可比較的

  • 實現(xiàn)該接口表示:這個類的實例可以比較大小,可以進行自然排序
  • 定義了默認的比較規(guī)則
  • 其實現(xiàn)類需要實現(xiàn)compareTo()方法
  • compareTo()方法返回正數(shù)表示大顽悼,負數(shù)表示小0表示相等

Comparator接口——比較工具接口

  • 用于定義臨時比較規(guī)則曼振,而不是默認比較規(guī)則
  • 其實現(xiàn)類需要實現(xiàn)compare()方法
  • Comparable和Comparator都是Java集合框架的成員

Iterator接口

  1. 集合輸出的標(biāo)準(zhǔn)操作
    標(biāo)準(zhǔn)做法,使用Iterator接口
  2. 操作原理:
    Iterator是專門的迭代輸出接口表蝙,迭代輸出就是將元素一個個進行判斷拴测,判斷其是否有內(nèi)容乓旗,如果有內(nèi)容則把內(nèi)容取出府蛇。

總結(jié)

集合的作用

  • 在類的內(nèi)部,對數(shù)據(jù)進行組織屿愚;
  • 簡單而快速的搜索大數(shù)量的條目汇跨;
  • 有的集合接口,提供了一系列排列有序的元素妆距,并且可以在序列中間快速的插入或者刪除有關(guān)元素穷遂;
  • 有的集合接口,提供了映射關(guān)系娱据,可以通過關(guān)鍵字(key)去快速查找對應(yīng)的唯一對象蚪黑,而這個關(guān)鍵字額可以是任意類型。

與數(shù)組的對比—————為何選擇集合而不是數(shù)組

  • 數(shù)組的長度固定中剩,集合長度可變
  • 數(shù)組只能通過下標(biāo)訪問元素忌穿,類型固定,而有的集合可以通過任意類型查找所映射的具體對象结啼。

整理的集合框架思維導(dǎo)圖

個人整理的Java集合框架思維導(dǎo)圖掠剑,動態(tài)維護。導(dǎo)出的圖片無法查看備注的一些信息郊愧,所以需要源文件的童鞋可以關(guān)注我個人主頁上的公眾號朴译,回復(fù)Java集合框架即可獲取源文件井佑。


一直覺得自己寫的不是技術(shù),而是情懷眠寿,一篇篇文章是自己這一路走來的痕跡躬翁。靠專業(yè)技能的成功是最具可復(fù)制性的澜公,希望我的這條路能讓你少走彎路姆另,希望我能幫你抹去知識的蒙塵,希望我能幫你理清知識的脈絡(luò)坟乾,希望未來技術(shù)之巔上有你也有我迹辐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甚侣,隨后出現(xiàn)的幾起案子明吩,更是在濱河造成了極大的恐慌,老刑警劉巖殷费,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件印荔,死亡現(xiàn)場離奇詭異,居然都是意外死亡详羡,警方通過查閱死者的電腦和手機仍律,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來实柠,“玉大人水泉,你說我怎么就攤上這事≈涎危” “怎么了草则?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蟹漓。 經(jīng)常有香客問我炕横,道長,這世上最難降的妖魔是什么葡粒? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任份殿,我火速辦了婚禮,結(jié)果婚禮上嗽交,老公的妹妹穿的比我還像新娘卿嘲。我一直安慰自己,他們只是感情好轮纫,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布腔寡。 她就那樣靜靜地躺著,像睡著了一般掌唾。 火紅的嫁衣襯著肌膚如雪放前。 梳的紋絲不亂的頭發(fā)上忿磅,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天,我揣著相機與錄音凭语,去河邊找鬼葱她。 笑死,一個胖子當(dāng)著我的面吹牛似扔,可吹牛的內(nèi)容都是我干的吨些。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼炒辉,長吁一口氣:“原來是場噩夢啊……” “哼豪墅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起黔寇,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤偶器,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缝裤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屏轰,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年憋飞,在試婚紗的時候發(fā)現(xiàn)自己被綠了霎苗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡榛做,死狀恐怖唁盏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瘤睹,我是刑警寧澤升敲,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布答倡,位于F島的核電站轰传,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘪撇。R本人自食惡果不足惜获茬,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倔既。 院中可真熱鬧恕曲,春花似錦、人聲如沸渤涌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽实蓬。三九已至茸俭,卻和暖如春吊履,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背调鬓。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工艇炎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腾窝。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓缀踪,卻偏偏與公主長得像,于是被迫代替她去往敵國和親虹脯。 傳聞我的和親對象是個殘疾皇子驴娃,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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