java集合整理
一劍寒霜十四州
發(fā)布于 云南 2019-12-08 · 2.7w瀏覽 6回復(fù) 13贊

一、簡(jiǎn)介

1.Collection接口下子接口主要有Set、List、Queue接口,Map是單獨(dú)的key-value鍵值對(duì)結(jié)構(gòu)集合

2.Set下主要實(shí)現(xiàn)類是:HashSet,LinkedHashSet,TreeSet

3.List下主要實(shí)現(xiàn)類是:ArrayList,Vector,LinkedList

4.Queue下主要實(shí)現(xiàn)類是:LinkedList ----Queue接口窄化了對(duì)LinkedList的方法的訪問權(quán)限(即在方法中的參數(shù)類型如果是Queue時(shí),就完全只能訪問Queue接口所定義的方法 了,而不能直接訪問 LinkedList的非Queue的方法)

5.Map下主要實(shí)現(xiàn)類是:Hashtable,LinkedHashMap,HashMap,TreeMap


二、說明

一)、List 有序、可重復(fù)

1.ArrayList

  • 優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。

  • 缺點(diǎn): 線程不安全,效率高

2.Vector

  • 優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢。

  • 缺點(diǎn): 線程安全,效率低

3.LinkList

  • 優(yōu)點(diǎn): 底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。

  • 缺點(diǎn): 線程不安全,效率高

二)、Set 無序、唯一

1.HashSet

底層數(shù)據(jù)結(jié)構(gòu)是哈希表。(無序,唯一)

  • 元素唯一性:使用hashCode()和equals()兩個(gè)方法

2.LinkedHashSet

底層數(shù)據(jù)結(jié)構(gòu)是鏈表和哈希表。(FIFO插入有序,唯一)

  • 由鏈表保證元素有序

  • 由哈希表保證元素唯一

3.TreeSet

底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹。(唯一,有序)

  • 保證元素排序:自然排序比較器排序

  • 元素唯一性:根據(jù)比較的返回值是否是0來決定

三)、Map接口

1.三個(gè)比較重要的實(shí)現(xiàn)類:

  • 分別是HashMap、TreeMap和HashTable。

2.三者比較區(qū)別

  • TreeMap是有序的,HashMap和HashTable是無序的。

  • Hashtable的方法是同步的,HashMap的方法不是同步的。這是兩者最主要的區(qū)別。

  • Hashtable是線程安全的,HashMap不是線程安全的。

  • HashMap效率較高,Hashtable效率較低。

  • Hashtable不允許null值,HashMap允許null值(key和value都允許)

  • 父類不同:Hashtable的父類是Dictionary,HashMap的父類是AbstractMap

三、總結(jié)

最后用一張圖做總結(jié)


一劍寒霜十四州
小怪獸,我是明非?。?
瀏覽 2.7w
13 收藏 2
相關(guān)推薦
最新評(píng)論 6
贊過的人 13
評(píng)論加載中...

暫無評(píng)論,快來評(píng)論吧!