017Java知識點小結--Map

1.Map接口

將鍵映射到值的對象
一個映射不能包含重複的鍵
每個鍵最多隻能映射到一個值

Map接口和Collection接口的不同

  1. Map是雙列的,Collection是單列的
  2. Map的鍵唯一,Collection的子體系Set是唯一的
  3. Map集合的數據結構值針對鍵有效,跟值無關
  4. Collection集合的數據結構是針對元素有效

Map集合的功能概述

  1. 添加功能
    V put(K key,V value):添加元素。
    如果鍵是第一次存儲,就直接存儲元素,返回null
    如果鍵不是第一次存在,就用值把以前的值替換掉,返回以前的值

  2. 刪除功能
    void clear():移除所有的鍵值對元素
    V remove(Object key):根據鍵刪除鍵值對元素,並把值返回

  3. 判斷功能
    boolean containsKey(Object key):判斷集合是否包含指定的鍵
    boolean containsValue(Object value):判斷集合是否包含指定的值
    boolean isEmpty():判斷集合是否爲空

  4. 獲取功能
    V get(Object key):根據鍵獲取值
    Set keySet():獲取集合中所有鍵的集合
    Collection values():獲取集合中所有值的集合

  5. 長度功能
    int size():返回集合中的鍵值對的對數

Map集合的遍歷

  1. 方式1:
    1)根據鍵找值
    2)獲取所有鍵的集合
    3)遍歷鍵的集合,獲取到每一個鍵
    4)根據鍵找值
  2. 方式2:
    1)根據鍵值對對象找鍵和值
    2)獲取所有鍵值對對象的集合
    3)遍歷鍵值對對象的集合,獲取到每一個鍵值對對象
    4)根據鍵值對對象找鍵和值

2.HashMap類

HashMap類概述
鍵是哈希表結構,可以保證鍵的唯一性(重寫hashcode equals)

    HashMap<String,String>
    HashMap<Integer,String>
    HashMap<String,Student>
    HashMap<Student,String>

HashMap:是基於哈希表的Map接口實現。
哈希表的作用是用來保證鍵的唯一性的。

  HashMap<String,String>
  鍵:String
  值:String

Hashtable和HashMap的區別?
Hashtable:線程安全,效率低。不允許null鍵和null值
HashMap:線程不安全,效率高。允許null鍵和null值

3.LinkedHashMap類

概述
LinkedHashMap:是Map接口的哈希表和鏈接列表實現,具有可預知的迭代順序。

由哈希表保證鍵的唯一性
由鏈表保證鍵的有序(存儲和取出的順序一致)

4.TreeMap類

TreeMap類概述
鍵是紅黑樹結構,可以保證鍵的排序和唯一性

TreeMap:是基於紅黑樹的Map接口的實現。

TreeMap<String,String>
  鍵:String
  值:String
    應用中
    HashMap嵌套HashMap
    ArrayList嵌套HashMap

5.Collections類

Collections類概述
針對集合操作 的工具類

Collection和Collections的區別?
Collection:是單列集合的頂層接口,有子接口List和Set。
Collections:是針對集合操作的工具類,有對集合進行排序和二分查找的方法

Collections成員方法

public static <T> void sort(List<T> list):排序 默認情況下是自然順序。
public static <T> int binarySearch(List<?> list,T key):二分查找
public static <T> T max(Collection<?> coll):最大值
public static void reverse(List<?> list):反轉
public static void shuffle(List<?> list):隨機置換
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章