Java中的Map集合學習筆記

張瘋子啊發表於2020-11-09

Map概述

    Map介面是一個雙列集合,它的每一個元素都包含一個鍵物件key和一個值物件value,鍵和值是一一對應關係。在map中訪問元素時,只要找到指定的key就能找到對應的value。
在這裡插入圖片描述

HashMap集合

    HashMap集合是Map介面的一個實現類,它是執行緒不安全的,用於儲存鍵值對映關係,但保證不能出現相同的鍵。如果有相同的鍵,總結一句話:鍵相同,值覆蓋
例項:

public class Exception05 {
    public static void main(String[] args) {
        //建立一個map
        Map hashMap = new HashMap();
        //通過put(key, value)方法儲存
        hashMap.put("name1", "張一");
        hashMap.put("name1", "李四");
        hashMap.put("name2", "張二");
        hashMap.put("name3", "張三");
        hashMap.put("name4", "張四");
        //通過get(key)方法取值輸出
        System.out.println("取出key為name1的value為:" + hashMap.get("name1"));
        //map集合的遍歷
        for (Object entry : hashMap.entrySet()){
            System.out.println(entry);
        }
    }
}

執行結果:
在這裡插入圖片描述
    我們通過put()方法存入五個key和對應的value,有一個key是相同的,從結果可以看出來value等於張一的並沒有輸出列印。這就是鍵相同,值覆蓋。

LinkedHashMap集合

    從上面例項的執行結果可以看出,通過遍歷map集合輸出的結果並不是我們存入的順序,如果想讓遍歷的結果輸出和儲存時的結果一致的話就要使用LinkedHashMap類它是HashMap的子類。它的內部也是使用了一個雙向連結串列維護內部元素的關係。
例項:

public class Exception06 {
    public static void main(String[] args) {
        //建立LinkedHashMap集合
        Map linkedHashMap = new LinkedHashMap();
        //儲存值
        linkedHashMap.put("1","jack1");
        linkedHashMap.put("2","jack2");
        linkedHashMap.put("3","jack3");
        //迴圈遍歷輸出
        for (Object entry: linkedHashMap.entrySet()){
            System.out.println(entry);
        }
    }
}

執行結果:
在這裡插入圖片描述
    從執行結果可以看出元素迭代出來的順序和存入的順序是一致的。

TreeMap集合

    TreeMap也是Map介面的一個實現類,該集合用來儲存鍵值對映關係的,它是不允許出現重複的鍵,TreeMap集合是通過二叉樹的原理來保證鍵的唯一性。
例項:

public class Exception07 {
    public static void main(String[] args) {
        Map treeMap = new TreeMap();//建立TreeMap集合
        treeMap.put("1","張三");//存入三個值
        treeMap.put("2","李四");
        treeMap.put("3","王二");
        Set keySet = treeMap.keySet();//獲得鍵的集合
        Iterator iterator = keySet.iterator();//獲得iterator物件
        while (iterator.hasNext()){//判斷是否存在下一個物件
            Object key = iterator.next();//取出元素
            Object value = treeMap.get(key);//根據獲得的鍵找對應的key
            System.out.println(key + "=" + value);
        }
    }
}

執行結果:
在這裡插入圖片描述

Properties集合

    Properties類是Hashtable的一個實現類,而Hashtable是實現了Map介面。Hashtable和Hashmap十分相似,區別在於Hashtable是執行緒安全的,它在存取元素是速度很慢,現在基本不使用。但Hashtable有一個子類就是Properties,然而Properties在實際中應用非常重要,在實際開發中,經常使用Properties集合來存取應用的配置項。
加油吧!!!
下一次學習List和Map集合的遍歷方式。

相關文章