天天看點

JAVA學習筆記——Map集合

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本身就是一個頂層接口