Map集合類_演練

xkfx發表於2024-12-02

見書P261

引入

將“關鍵字簡稱為“。透過Map介面可以實現儲存“鍵/值”的對映關係。

在一些教材中map被翻譯為對映

什麼是鍵?什麼是值?

手機上的聯絡人,就是一個最典型的對映(map)

想象一下,你的手機裡儲存了很多聯絡人的資訊。每個聯絡人都有一個名字,而每個名字對應著一個電話號碼

在這裡,名字就是所謂的“鍵”,電話號碼就是“值”。

舉個例子:張三的電話號碼是123-456-7890,那麼這裡張三就是123-456-7890就是值。

鍵必須是唯一的。也就是說,不能有兩個張三。

如果提供了鍵,就可以查詢一個值。即,透過名字可以查詢電話號碼。

對映

HashMap可被稱為雜湊對映或者雜湊表

可以用下面的方法建立一個雜湊對映(HashMap)來儲存聯絡人資訊:

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class MyTest {

    public static void main(String[] args) {
        // 1 建立 HashMap 類物件
        Map<String, String> map = new HashMap<>();
        // Map介面是泛型介面, HashMap類是泛型類
        // 需要在尖括號中指定 鍵 和 值 型別

        // 2 用 put 方法向對映中新增鍵值對
        map.put("zhangsan", "123-456-7890");
        map.put("lisi", "234-567-8901");
        map.put("wangwu", "345-678-9012");

        // 3 根據鍵獲取值
        String tmp = map.get("zhangsan");
        System.out.println(tmp);

        // 4 模擬查詢預設電話
        String name = new Scanner(System.in).next();
        if (map.containsKey(name)) {
            System.out.println(name + "的電話: " + map.get(name));
        } else {
            System.out.println(name + "不在聯絡人列表中");
        }

        // 5 刪除指定鍵的對映
        map.remove("zhangsan");

        // 6 輸出整個聯絡人列表
        System.out.println("*******************************");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println("姓名: " + key + ", 電話: " + value);
        }
    }
}

其中,Map.EntryMap 介面的一個巢狀介面,它代表 Map 中的一個鍵值對(需注意,它也是一個泛型介面)。它實際上就是 Map 中每個元素的一個抽象,包含了鍵和值。可以透過 entry.getKey() 獲取鍵,entry.getValue() 獲取值。

練習(★★★★★)

建立2個字串陣列,第一個陣列內容為:[黑龍江省,浙江省,江西省,廣東省,福建省]

第二個陣列為:[哈爾濱,杭州,南昌,廣州,福州]

將第一個陣列元素作為key,第二個陣列元素作為value儲存到Map集合中。

刪除Map集合中Key=黑龍江省的鍵值對。

迭代Map集合,參考的輸出資料格式如下:

福建省=福州
浙江省=杭州
江西省=南昌
廣東省=廣州

相關文章