java day 11

集合

  • 把具有相同性質(zhì)的一類東西,匯聚成一個整體,就可以稱為集合。
  • 集合包含的三部分:
    1.接口:即表示集合的抽象數(shù)據(jù)類型。接口提供了讓我們對集合中所表示的內(nèi)容進行單獨操作的可能戴尸。
    2.實現(xiàn):也就是集合框架中接口的具體實現(xiàn)。實際它們就是那些可復(fù)用的數(shù)據(jù)結(jié)構(gòu)冤狡。
    3.算法:在一個實現(xiàn)了某個集合框架中的接口的對象身上完成某種有用的計算的方法孙蒙,例如查找、排序等悲雳。這些算法通常是多態(tài)的挎峦,因為相同的方法可以在同一個接口被多個類實現(xiàn)時有不同的表現(xiàn)。

  • 集合框架的優(yōu)點:
    1.減少編程工作合瓢。
    2.增加編程速度與質(zhì)量浑测。
    3.減少了學(xué)習和應(yīng)用新的API的工作。
    4.減少了新的API的工作。
    5.促進了軟件的應(yīng)用迁央。

  • API接口


    ES62{O8.png

    1.collection接口是所有集合接口的根接口掷匠,它聲明的抽象方法是通用的集合操作。
    2.Set是不能包含重復(fù)元素的集合岖圈。Set集合的元素位置往往并不確定讹语,因而不能通過位置存取元素。
    3.List的元素按照一定的次序排列蜂科,被稱為序列顽决。list集合的元素可以重復(fù)。
    4.Queue集合用于表示隊列导匣,經(jīng)常按照某種原則進行元素從插入和訪問才菠。
    5.Deque 該接口的集合類支持從隊列兩端進行元素插入和刪除。
    5.Map管理一批鍵值對(key-value pairs)贡定。

  • Iterator(迭代器)
      迭代器是一種設(shè)計模式赋访,它是一個對象,它可以遍歷并選擇序列中的對象缓待,而開發(fā)人員不需要了解該序列的底層結(jié)構(gòu)蚓耽。迭代器通常被稱為“輕量級”對象,因為創(chuàng)建它的代價小旋炒。
      Java中的Iterator功能比較簡單步悠,并且只能單向移動:
      (1) 使用方法iterator()要求容器返回一個Iterator。第一次調(diào)用Iterator的next()方法時瘫镇,它返回序列的第一個元素鼎兽。注意:iterator()方法是java.lang.Iterable接口,被Collection繼承。
      (2) 使用next()獲得序列中的下一個元素铣除。
      (3) 使用hasNext()檢查序列中是否還有元素接奈。
      (4) 使用remove()將迭代器新返回的元素刪除。
      Iterator是Java迭代器最簡單的實現(xiàn)通孽,為List設(shè)計的ListIterator具有更多的功能,它可以從兩個方向遍歷List睁壁,也可以從List中插入和刪除元素背苦。

  • ArrayList
    ArrayList 是一個數(shù)組隊列,相當于 動態(tài)數(shù)組潘明。與Java中的數(shù)組相比行剂,它的容量能動態(tài)增長。它繼承于AbstractList钳降,實現(xiàn)了List, RandomAccess, Cloneable, java.io.Serializable這些接口厚宰。
    ArrayList 繼承了AbstractList,實現(xiàn)了List。它是一個數(shù)組隊列铲觉,提供了相關(guān)的添加澈蝙、刪除、修改撵幽、遍歷等功能灯荧。
    ArrayList 實現(xiàn)了RandmoAccess接口,即提供了隨機訪問功能盐杂。RandmoAccess是java中用來被List實現(xiàn)逗载,為List提供快速訪問功能的。在ArrayList中链烈,我們即可以通過元素的序號快速獲取元素對象厉斟;這就是快速隨機訪問。稍后强衡,我們會比較List的“快速隨機訪問”和“通過Iterator迭代器訪問”的效率擦秽。
    ArrayList 實現(xiàn)了Cloneable接口,即覆蓋了函數(shù)clone()食侮,能被克隆号涯。
    ArrayList 實現(xiàn)java.io.Serializable接口,這意味著ArrayList支持序列化锯七,能通過序列化去傳輸链快。和Vector不同,ArrayList中的操作不是線程安全的眉尸。所以域蜗,建議在單線程中才使用ArrayList,而在多線程中可以選擇Vector或者CopyOnWriteArrayList噪猾。

  • LinkedList與ArrayList的區(qū)別
    1.ArrayList是實現(xiàn)了基于動態(tài)數(shù)組的數(shù)據(jù)結(jié)構(gòu)霉祸,LinkedList基于鏈表的數(shù)據(jù)結(jié)構(gòu)。
    2.ArrayList對隨機訪問性能很好,但進行大量插入,刪除操作,性能很差, 因為操作之后后續(xù)元素需要移動袱蜡。
    3.LinkedList功能與ArrayList,Vector相同,內(nèi)部是依賴雙鏈表實現(xiàn)的, 因此有很好的插入和刪除性能丝蹭,只需要改變引用指向,但隨機訪問元素的性能很差 。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坪蚁,一起剝皮案震驚了整個濱河市奔穿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌敏晤,老刑警劉巖贱田,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嘴脾,居然都是意外死亡男摧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來耗拓,“玉大人拇颅,你說我怎么就攤上這事》耄” “怎么了蔬蕊?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哥谷。 經(jīng)常有香客問我岸夯,道長,這世上最難降的妖魔是什么们妥? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任猜扮,我火速辦了婚禮,結(jié)果婚禮上监婶,老公的妹妹穿的比我還像新娘旅赢。我一直安慰自己,他們只是感情好惑惶,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布煮盼。 她就那樣靜靜地躺著,像睡著了一般带污。 火紅的嫁衣襯著肌膚如雪僵控。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天鱼冀,我揣著相機與錄音报破,去河邊找鬼。 笑死千绪,一個胖子當著我的面吹牛充易,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荸型,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼盹靴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瑞妇?” 一聲冷哼從身側(cè)響起稿静,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踪宠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妈嘹,經(jīng)...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡柳琢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柬脸。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡他去,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出倒堕,到底是詐尸還是另有隱情灾测,我是刑警寧澤,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布垦巴,位于F島的核電站媳搪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏骤宣。R本人自食惡果不足惜秦爆,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望憔披。 院中可真熱鬧等限,春花似錦、人聲如沸芬膝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锰霜。三九已至筹误,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锈遥,已是汗流浹背纫事。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留所灸,地道東北人丽惶。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像爬立,于是被迫代替她去往敵國和親钾唬。 傳聞我的和親對象是個殘疾皇子鳄逾,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法锰镀,類相關(guān)的語法,內(nèi)部類的語法侦讨,繼承相關(guān)的語法吟策,異常的語法儒士,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • Java源碼研究之容器(1) 如何看源碼 很多時候我們看源碼, 看完了以后經(jīng)常也沒啥收獲, 有些地方看得懂, 有些...
    駱駝騎士閱讀 987評論 0 22
  • 1.Java集合框架是什么?說出一些集合框架的優(yōu)點檩坚? 每種編程語言中都有集合着撩,最初的Java版本包含幾種集合類:V...
    Oneisall_81a5閱讀 899評論 0 11
  • 制定目標在今天已經(jīng)越來越重要诅福。不僅公司強調(diào)目標,個人也是如此拖叙。比如氓润,F(xiàn)acebook的CEO扎克伯格每年都會公布自...
    親子教練Will閱讀 407評論 0 0
  • 漂浮的島,洞穴薯鳍,魚腸小路咖气,不可思議地城市,奇怪的種族挖滤,狗叫的羊崩溪,行走的尸體,撕咬尸體的貓壶辜,沒有眼睛被鋼絲纏繞的動物
    半張狂閱讀 136評論 0 1