Java 的 Map 是什么?

地图

地图是一种以唯一键和值对进行管理的数据结构。根据不同的语言,它被称为字典、哈希或关联数组。
键是地图的一个重要特征,它存储有意义的信息。

首先让我们试着写下来…

Main.java 的中文翻译选项:主程序.java

package com.company;

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

public class Main {
    public static void main(String[] args) {
        var map = new HashMap<String, String>(Map.of("Rose", "バラ",
                "Sunflower", "ひまわり", "Morning Glory", "あさがお"));
        // 指定のキーが含まれているかを検索
        System.out.println(map.containsKey("Rose")); // 結果 : true
        // 指定の値が含まれているかを検索
        System.out.println(map.containsValue("バラ")); // 結果 : true
        // マップの中身が空かを検索
        System.out.println(map.isEmpty()); // 結果 : false

        // すべてのキーを取得
        for (var key : map.keySet()) {
            System.out.println(key); // 結果 : Rose, Sunflower, Morning Glory
        }
        // すべての値を取得
        for (var value : map.values()) {
            System.out.println(value); // 結果 : バラ、ひまわり、あさがお
        }
        // 指定のキーの値をvalueに置き換え
        map.replace("Rose", "薔薇");
        // 指定のキーkey/値oldがある場合、その値をnewに置き換え
        map.replace("Sunflower", "ひまわり", "向日葵");

        for (var entry : map.entrySet()) {
            System.out.println(entry.getKey() + ":" + entry.getValue());
            // // 結果 : Rose:薔薇、 Sunflower:向日葵、 Morning Glory:あさがお
        }
    }
}

执行结果

true
true
false
Rose
Sunflower
Morning Glory
バラ
ひまわり
あさがお
Rose:薔薇
Sunflower:向日葵
Morning Glory:あさがお

请注意,地图不能直接传递给扩展for命令。要枚举键/值,请使用keySet/values方法来获取键/值的集合。
或者,您也可以使用entrySet方法来获取地图条目(Map.Entry)的集合。
在这种情况下,您可以通过entry.getKey/entry.getValue方法访问键/值。

添加数值并在日志中进行获取的示例

主要是Java文件

package com.company;

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        var key1 = Integer.valueOf(1);
        var key2 = Integer.valueOf(2);
        var key3 = Integer.valueOf(3);
        var key4 = Integer.valueOf(4);

        var data = new HashMap<Integer, String>() {
            {
                // pub(K key, V value) 指定のキー/値の要素を追加
                put(key1, "Apple");
                put(key2, "Google");
                put(key3, "FaceBook");
                put(key4, "Amazon");
            }
        };
        System.out.println(data.get(key1)); // 指定のキーの値を取得
        System.out.println(data.getOrDefault(key2, "Google")); // 指定のキーの値を取得
        System.out.println(data.entrySet()); // すべて要素を取得
        System.out.println(data.keySet()); // すべてのキーを取得
        System.out.println(data.size()); // マップの要素数を取得
        System.out.println(data.values()); // すべての値を取得
    }
}

执行结果

Apple
Google
[1=Apple, 2=Google, 3=FaceBook, 4=Amazon]
[1, 2, 3, 4]
4
[Apple, Google, FaceBook, Amazon]
广告
将在 10 秒后关闭
bannerAds