更新時間:2019-12-18 16:47:01 來源:動力節點 瀏覽3089次
List、Map和Set都是接口,前兩個繼承于Collection接口,Map則沒有繼承該接口,Queue接口,有PriorityQueue類。
Collection繼承層次結構圖
1、List
List依靠索引來存取元素,可以有重復元素。List有ArrayList、Vector和LinkedList三種。
1.1、ArrayList
底層數據結構是數組,查詢快,增刪慢,線程不安全,效率高。
1.2、Vecto
底層數據結構是數組,查詢快,增刪慢,線程安全,效率低。
1.3、LinkedList
底層數據結構是鏈表,查詢慢,增刪快,線程不安全,效率高。
2、Map
Map保存鍵-值對(即key-value)映射,映射關系可以是一對一或多對一。Map有Hashtable、LinkedHashMap、HashMap和TreeMap。
Map繼承層次結構圖
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不能存放重復元素,可用對象的equals()方法區分元素是否重復。Set有HashSet、LinkedHashSet和TreeSet三種。
3.1、HashSet
底層數據結構是哈希表,其元素無序但唯一。
可用方法hashCode()和equals()來保證元素唯一性。
3.2、LinkedHashSet
底層數據結構是鏈表和哈希表。其中,鏈表保證元素有序,而哈希表保證元素唯一。
3.3、TreeSet
底層數據結構是紅黑樹,其元素唯一且有序
以上就是動力節點Java培訓機構小編介紹的“Java集合學習之list、Map和Set要點總結”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關文章
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習