更新時(shí)間:2019-12-18 16:47:01 來源:動(dòng)力節(jié)點(diǎn) 瀏覽3112次
List、Map和Set都是接口,前兩個(gè)繼承于Collection接口,Map則沒有繼承該接口,Queue接口,有PriorityQueue類。
Collection繼承層次結(jié)構(gòu)圖
1、List
List依靠索引來存取元素,可以有重復(fù)元素。List有ArrayList、Vector和LinkedList三種。
1.1、ArrayList
底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢,線程不安全,效率高。
1.2、Vecto
底層數(shù)據(jù)結(jié)構(gòu)是數(shù)組,查詢快,增刪慢,線程安全,效率低。
1.3、LinkedList
底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快,線程不安全,效率高。
2、Map
Map保存鍵-值對(duì)(即key-value)映射,映射關(guān)系可以是一對(duì)一或多對(duì)一。Map有Hashtable、LinkedHashMap、HashMap和TreeMap。
Map繼承層次結(jié)構(gòu)圖
2.1、是否有序
TreeMap是有序的,而HashMap和HashTable是無序的。
2.2、是否同步
Hashtable的方法是同步的,而HashMap的方法不同步。
2.3、是否線程安全
Hashtable線程安全,而HashMap線程不安全。
2.4、效率高低
HashMap效率較高,而Hashtable效率較低。
2.5、是否允許null值
Hashtable不允許null值,但HashMap允許null值。
3、Set*
Set不能存放重復(fù)元素,可用對(duì)象的equals()方法區(qū)分元素是否重復(fù)。Set有HashSet、LinkedHashSet和TreeSet三種。
3.1、HashSet
底層數(shù)據(jù)結(jié)構(gòu)是哈希表,其元素?zé)o序但唯一。
可用方法hashCode()和equals()來保證元素唯一性。
3.2、LinkedHashSet
底層數(shù)據(jù)結(jié)構(gòu)是鏈表和哈希表。其中,鏈表保證元素有序,而哈希表保證元素唯一。
3.3、TreeSet
底層數(shù)據(jù)結(jié)構(gòu)是紅黑樹,其元素唯一且有序
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java集合學(xué)習(xí)之list、Map和Set要點(diǎn)總結(jié)”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖
一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?
Java學(xué)習(xí)路線清單,快速進(jìn)階Java
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743