1.Map集合的特點:
将鍵映射到值的對象,一個映射不能包含重複的鍵,每個鍵最多隻能映射到一個值。
2.Map集合與Collection集合的差別?
Map集合存儲元素是成對出現的;Collection集合存儲元素是單獨的
Map集合的鍵是唯一的,值是可重複的;Collection的子接口Set是唯一的,List是可重複的
Map集合的資料結構針對鍵有效,跟值無關;Collection集合的資料結構針對元素有效。
3.Map主要功能概述:
1)添加功能
V put(K key , V value):添加元素,添加成功後傳回該value值
2)删除功能
void clear():移除所有的鍵值對元素
3)判斷功能
boolean containsKey(Object key):判斷是否包含指定的鍵
boolean containsValues(Object value):判斷是否包含指定的值
boolean isEmpty():判斷集合是否為空
4)擷取功能
Set< Map.Entry< K , V>> entrySet():傳回鍵值對對象的集合
V get(Object key):根據鍵擷取值
Set< K > keySet():擷取集合中所有鍵的集合
Collection< V > values():擷取集合中所有值的集合。
5)長度功能
int size():傳回集合中的鍵值對
4.接口的實作類:hashMap和TreeMap
1)hashMap:底層是哈希表,依賴于hashCode()和equals()兩個方法,
LinkedHashMap:底層是哈希表和連結清單,哈希表保證唯一,連結清單保證有序(存取有序)
3)TreeMap:底層是紅黑樹,有兩種排序方式:自然排序和比較器排序
5.面試題
1)HashMap與Hashtable的差別:
Hashtable:線程安全,效率低,不允許null鍵和null值。
HashMap:線程不安全,效率高,允許null鍵和null值。
2)List、Set和Map等接口是否都繼承自Map接口?
List、Set繼承自Collection接口
Map本身就是一個頂層接口