List束亏、Map铃在、Set接口

List和Set是繼承了Collection接口的,Map沒有繼承或?qū)崿F(xiàn)任何接口碍遍。


Map和List的區(qū)別

一個是存儲單列數(shù)據(jù)的集合定铜,另一個是存儲鍵和值這樣的雙列數(shù)據(jù)的集合,List 中存儲的數(shù) 據(jù)是有順序怕敬,并且允許重復(fù);Map 中存儲的數(shù)據(jù)是沒有順序的揣炕,其鍵是不能重復(fù)的,它的 值是可以有重復(fù)的东跪。


List畸陡、Map鹰溜、Set 三個接口,存取元素時丁恭,各有什么特點(diǎn)?

<li>首先曹动,List 與 Set 具有相似性,它們都是單列元素的集合牲览,所以墓陈,它們有一個功共同的父接 口,叫 Collection第献。Set 里面不允許有重復(fù)的元素贡必,所謂重復(fù),即不能有兩個相等(注意痊硕, 不是僅僅是相同)的對象赊级,即假設(shè) Set 集合中有了一個 A 對象,現(xiàn)在我要向 Set 集合再存 入一個 B 對象岔绸,但 B 對象與 A 對象 equals 相等理逊,則 B 對象存儲不進(jìn)去,所以盒揉,Set 集合的 add 方法有一個 boolean 的返回值晋被,當(dāng)集合中沒有某個元素,此時 add 方法可成功加入該 元素時刚盈,則返回 true羡洛,當(dāng)集合含有與某個元素 equals 相等的元素時,此時 add 方法無法加 入該元素藕漱,返回結(jié)果為 false欲侮。Set 取元素時,沒法說取第幾個肋联,只能以 Iterator 接口取得所 有的元素威蕉,再逐一遍歷各個元素。
<li>List 表示有先后順序的集合橄仍,注意韧涨,不是那種按年齡、按大小侮繁、按價格之類的排序虑粥。 當(dāng)我們多次調(diào)用 add(Obj e)方法時,每次加入的對象就像火車站買票有排隊(duì)順序一樣宪哩,按先 來后到的順序排序娩贷。有時候,也可以插隊(duì)锁孟,即調(diào)用 add(int index,Obj e)方法育勺,就可以指定當(dāng) 前對象在集合中的存放位置但荤。一個對象可以被反復(fù)存儲進(jìn) List 中罗岖,每調(diào)用一次 add 方法涧至, 這個對象就被插入進(jìn)集合中一次,其實(shí)桑包,并不是把這個對象本身存儲進(jìn)了集合中南蓬,而是在集 合中用一個索引變量指向這個對象,當(dāng)這個對象被 add 多次時哑了,即相當(dāng)于集合中有多個索 引指向了這個對象赘方,List 除了可以以 Iterator 接口取得所有的元素,再逐一遍 歷各個元素之外弱左,還可以調(diào)用 get(index i)來明確說明取第幾個窄陡。
<li>Map 與 List 和 Set 不同,它是雙列的集合拆火,其中有 put 方法跳夭,定義如下:put(obj key,objvalue),每次存儲時们镜,要存儲一對 key/value币叹,不能存儲重復(fù)的 key,這個重復(fù)的規(guī) 則也是按 equals 比較相等模狭【备В可以根據(jù) key 獲得相應(yīng)的 value,即 get(Object key)返回 值為 key 所對應(yīng)的 value嚼鹉。另外贩汉,也可以獲得所有的 key 的集合,還可以獲得所有的 value 的結(jié)合锚赤,還可以獲得 key 和 value 組合成的 Map.Entry 對象的集合匹舞。
<li>List 以特定次序來持有元素,可有重復(fù)元素宴树。Set 無法擁有重復(fù)元素,內(nèi)部排序策菜。Map 保存 key-value 值,value 可多值酒贬。
HashSet 按照 hashcode 值的某種運(yùn)算方式進(jìn)行存儲又憨,而不是直接按 hashCode 值的大小進(jìn) 行存儲。例如锭吨,"abc"---> 78蠢莺,"def" ---> 62,"xyz" ---> 65在 hashSet 中的存儲順序不是 62,65,78零如,LinkedHashSet 按插入的順序存儲躏将,那被存儲對象 的 hashcode 方法還有什么作用呢?hashset 集合比較兩個對象是否相等锄弱,首先看 hashcode 方法是否相等,然后看 equals 方法是否相等祸憋。new 兩個 Student 插入到 HashSet 中会宪,看 HashSet 的 size,實(shí)現(xiàn) hashcode 和 equals 方法后再看 size蚯窥。所以同一個對象可以在 Vector 中加入多次掸鹅。往集合里面加元素,相當(dāng)于集合里用一根繩子連接 到了目標(biāo)對象拦赠。往 HashSet 中卻加不了多次的巍沙。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市荷鼠,隨后出現(xiàn)的幾起案子句携,更是在濱河造成了極大的恐慌,老刑警劉巖允乐,帶你破解...
    沈念sama閱讀 216,544評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矮嫉,死亡現(xiàn)場離奇詭異,居然都是意外死亡喳篇,警方通過查閱死者的電腦和手機(jī)敞临,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來麸澜,“玉大人挺尿,你說我怎么就攤上這事〈栋睿” “怎么了编矾?”我有些...
    開封第一講書人閱讀 162,764評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長馁害。 經(jīng)常有香客問我窄俏,道長,這世上最難降的妖魔是什么碘菜? 我笑而不...
    開封第一講書人閱讀 58,193評論 1 292
  • 正文 為了忘掉前任凹蜈,我火速辦了婚禮,結(jié)果婚禮上忍啸,老公的妹妹穿的比我還像新娘仰坦。我一直安慰自己,他們只是感情好计雌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評論 6 388
  • 文/花漫 我一把揭開白布悄晃。 她就那樣靜靜地躺著,像睡著了一般凿滤。 火紅的嫁衣襯著肌膚如雪妈橄。 梳的紋絲不亂的頭發(fā)上庶近,一...
    開封第一講書人閱讀 51,182評論 1 299
  • 那天,我揣著相機(jī)與錄音眷蚓,去河邊找鬼鼻种。 笑死,一個胖子當(dāng)著我的面吹牛溪椎,可吹牛的內(nèi)容都是我干的普舆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼校读,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了祖能?” 一聲冷哼從身側(cè)響起歉秫,我...
    開封第一講書人閱讀 38,917評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎养铸,沒想到半個月后雁芙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钞螟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評論 2 332
  • 正文 我和宋清朗相戀三年兔甘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳞滨。...
    茶點(diǎn)故事閱讀 39,722評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡洞焙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拯啦,到底是詐尸還是另有隱情澡匪,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評論 5 343
  • 正文 年R本政府宣布褒链,位于F島的核電站唁情,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏甫匹。R本人自食惡果不足惜甸鸟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兵迅。 院中可真熱鬧抢韭,春花似錦、人聲如沸喷兼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽季惯。三九已至吠各,卻和暖如春臀突,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贾漏。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評論 1 269
  • 我被黑心中介騙來泰國打工候学, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纵散。 一個月前我還...
    沈念sama閱讀 47,729評論 2 368
  • 正文 我出身青樓梳码,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伍掀。 傳聞我的和親對象是個殘疾皇子掰茶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評論 2 353

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法蜜笤,內(nèi)部類的語法濒蒋,繼承相關(guān)的語法,異常的語法把兔,線程的語...
    子非魚_t_閱讀 31,623評論 18 399
  • 本篇文章帶你從Java源碼深入解析關(guān)于Java容器的概念。 參考文獻(xiàn): Java容器相關(guān)知識全面總結(jié) Java官方...
    Tsy遠(yuǎn)閱讀 19,772評論 13 142
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等缕贡,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,497評論 0 3
  • 一善绎、前言 Java集合主要分為三種類型:Set(集)黔漂、List(列表)和Map(映射)。 先簡單說下集合和數(shù)組的區(qū)...
    小怪聊職場閱讀 6,469評論 4 54
  • 三年風(fēng)雪為今朝禀酱, 兩日貢舉終小可炬守。 天下誰能判吾生, 定逆蒼天為此生剂跟。
    均黎閱讀 247評論 0 0