Java集合架構-Map接口-概述
Map接口繼承樹
Map接口的子類實作
- Map:雙列資料,存儲key-value對的資料
- HashMap:作為Map的主要實作類,線程不安全的,效率高,存儲null的key和value
- LinkedHashMap:保證周遊Map元素時,可以按照添加的順序實作周遊。
- 原因:在原有的HashMap底層基礎上,添加了一對指針prev和next,指向前一個和後一個元素
- 對于頻繁的周遊操作,LinkedHashMap的效率高于HashMap
- LinkedHashMap:保證周遊Map元素時,可以按照添加的順序實作周遊。
- HashMap的底層
- 數組+連結清單(jdk7)
- 數組+連結清單+紅黑樹(jdk8)
- TreeMap:保證按照添加的tree-value對進行排序,實作按照key排序周遊。(使用的是key的自然排序和定制排序
- TreeMap底層使用的是紅黑樹
- Hashtable:作為古老的Map接口的實作類,線程安全的,效率低,不能存儲null的key和value
- Properties:常用來處理配置檔案。key和value都是String類型
- HashMap:作為Map的主要實作類,線程不安全的,效率高,存儲null的key和value
Map接口的描述
- Map中key是無序,不能重複的,value無序,可重複的。key無序,value無序
- key使用Set存儲,無序,不可重複的。–》要求HashMap中的key所在的類要重寫equals()和hashCode()方法,TreeMap的話則需要定義自然排序或者定制排序
- value使用collection存,無序的,可以重複的。----》value所在的類要重寫equals()
- 一個鍵值對:key-value構成了一個Entry對象
- Map中的Entry對象:無序的,不可重複的,使用Set存儲所有的entry
Map接口:常用方法
- 添加、删除、修改操作:
- Object put(Object key,Object value):将指定key-value添加到(或修改)目前map對象中