三大集合:List跺撼、Map窟感、Set的區(qū)別與聯(lián)系

List、Map歉井、Set的區(qū)別與聯(lián)系

一柿祈、結(jié)構(gòu)特點(diǎn)

List和Set是存儲(chǔ)單列數(shù)據(jù)的集合,Map是存儲(chǔ)鍵值對(duì)這樣的雙列數(shù)據(jù)的集合哩至;
List中存儲(chǔ)的數(shù)據(jù)是有順序的躏嚎,并且值允許重復(fù);Map中存儲(chǔ)的數(shù)據(jù)是無序的菩貌,它的鍵是不允許重復(fù)的卢佣,但是值是允許重復(fù)的;Set中存儲(chǔ)的數(shù)據(jù)是無順序的箭阶,并且不允許重復(fù)虚茶,但元素在集合中的位置是由元素的hashcode決定,即位置是固定的(Set集合是根據(jù)hashcode來進(jìn)行數(shù)據(jù)存儲(chǔ)的尾膊,所以位置是固定的媳危,但是這個(gè)位置不是用戶可以控制的,所以對(duì)于用戶來說set中的元素還是無序的)冈敛。

二待笑、實(shí)現(xiàn)類

List接口有三個(gè)實(shí)現(xiàn)類:
1.1 LinkedList
基于鏈表實(shí)現(xiàn),鏈表內(nèi)存是散列的抓谴,增刪快暮蹂,查找慢;
1.2 ArrayList
基于數(shù)組實(shí)現(xiàn)癌压,非線程安全仰泻,效率高,增刪慢滩届,查找快集侯;
1.3 Vector
基于數(shù)組實(shí)現(xiàn),線程安全帜消,效率低棠枉,增刪慢,查找慢泡挺;
Map接口有四個(gè)實(shí)現(xiàn)類:
2.1 HashMap
基于 hash 表的 Map 接口實(shí)現(xiàn)辈讶,非線程安全,高效娄猫,支持 null 值和 null
鍵贱除;
2.2 HashTable
線程安全生闲,低效,不支持 null 值和 null 鍵月幌;
2.3 LinkedHashMap
是 HashMap 的一個(gè)子類碍讯,保存了記錄的插入順序;
2.4 SortMap 接口
TreeMap飞醉,能夠把它保存的記錄根據(jù)鍵排序冲茸,默認(rèn)是鍵值的升序排序

Set接口有兩個(gè)實(shí)現(xiàn)類:
3.1 HashSet
底層是由 Hash Map 實(shí)現(xiàn),不允許集合中有重復(fù)的值缅帘,使用該方式時(shí)需要重寫 equals()和 hash Code()方法轴术;
3.2 LinkedHashSet
繼承于 HashSet,同時(shí)又基于 LinkedHashMap 來進(jìn)行實(shí)現(xiàn)钦无,底層使用的是 LinkedHashMap

三.區(qū)別
1. List 集合中對(duì)象按照索引位置排序逗栽,可以有重復(fù)對(duì)象,允許按照對(duì)象在集合中的索引位置檢索對(duì)象失暂,例如通過list.get(i)方法來獲取集合中的元素彼宠;
 2. Map 中的每一個(gè)元素包含一個(gè)鍵和一個(gè)值,成對(duì)出現(xiàn)弟塞,鍵對(duì)象不可以重復(fù)凭峡,值對(duì)象可以重復(fù);
 3. Set 集合中的對(duì)象不按照特定的方式排序决记,并且沒有重復(fù)對(duì)象摧冀,但它的實(shí)現(xiàn)類能對(duì)集合中的對(duì)象按照特定的方式排序,例如 Tree Set 類系宫,可以按照默認(rèn)順序索昂,也可以通過實(shí)現(xiàn) Java.util.Comparator< Type >接口來自定義排序方式。

四.補(bǔ)充

補(bǔ)充:HashMap 和 HashTable
HashMap 是線程不安全的,HashMap 是一個(gè)接口,是 Map的一個(gè)子接口,是將鍵映射到值得對(duì)象,不允許鍵值重復(fù),允許空鍵和空值;由于非線程安全, HashMap的效率要較 HashTable 的效率高一些.
HashTable 是線程安全的一個(gè)集合,不允許 null 值作為一個(gè) key 值或者 Value 值;
HashTable 是 sychronize(同步化),多個(gè)線程訪問時(shí)不需要自己為它的方法實(shí)現(xiàn)同步,而 HashMap 在被多個(gè)線程訪問的時(shí)候需要自己為它的方法實(shí)現(xiàn)同步;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扩借,一起剝皮案震驚了整個(gè)濱河市椒惨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌潮罪,老刑警劉巖康谆,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異嫉到,居然都是意外死亡沃暗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門屯碴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來描睦,“玉大人膊存,你說我怎么就攤上這事导而〕腊龋” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵今艺,是天一觀的道長(zhǎng)韵丑。 經(jīng)常有香客問我,道長(zhǎng)虚缎,這世上最難降的妖魔是什么撵彻? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮实牡,結(jié)果婚禮上陌僵,老公的妹妹穿的比我還像新娘。我一直安慰自己创坞,他們只是感情好碗短,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著题涨,像睡著了一般偎谁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上纲堵,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天巡雨,我揣著相機(jī)與錄音,去河邊找鬼席函。 笑死铐望,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的向挖。 我是一名探鬼主播蝌以,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼何之!你這毒婦竟也來了跟畅?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤溶推,失蹤者是張志新(化名)和其女友劉穎徊件,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒜危,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡虱痕,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了辐赞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片部翘。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖响委,靈堂內(nèi)的尸體忽然破棺而出新思,到底是詐尸還是另有隱情窖梁,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布夹囚,位于F島的核電站纵刘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏荸哟。R本人自食惡果不足惜假哎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鞍历。 院中可真熱鬧舵抹,春花似錦、人聲如沸劣砍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秆剪。三九已至赊淑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間仅讽,已是汗流浹背陶缺。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洁灵,地道東北人饱岸。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像徽千,于是被迫代替她去往敵國和親苫费。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354