基础用法

用put方法为Map添加键值对。如果该键已经存在,则该键的值将被更新

Map<String, Integer> map = new HashMap<>();
map.put("One", 1);
map.put("Two", 2);
map.put("Three", 3);

初始化并赋值

方法四:java9+
Map<String,String> map=Map.of("a","b","c","d")
Map<String,String> map=Map.ofEntries(
    entry("a","b"),entry("c","d")
);

方法一:static方法赋值
private static final Map<String, Integer> myMap = new HashMap<>();
static {
    myMap.put("One", 1);
    myMap.put("Two", 2);
    myMap.put("Three", 3);
}

方法二:双括号初始化(匿名内部类)
HashMap<String, String> myMap = new HashMap<>(){{
    put("a","b");
    put("b":"c");
}};

方法三:guava
Map<String, Integer> myMap = ImmutableMap.of("张三","北京","李四","上海");
引入依赖
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.1-jre</version>
</dependency>
ImmutableMap是不可改变Map,初始化之后不能更改

静态代码块初始化Map

private static Map<String, Integer> map = new HashMap<>();

static {
    map.put("One", 1);
    map.put("Two", 2);
    map.put("Three", 3);
}

replace方法

使用replace方法可以替换Map中的键值对。如果该键不存在,则该方法不会执行任何操作

map.replace("Two", 4);
map.replace("Four", 4);

putAll方法

将一个Map中的所有键值对添加到另一个Map中,如果该键已经存在,则该键的值将被更新

map1.putAll(map2);

compute

compute方法将对Map中指定键的值执行自定义处理。它的第二个参数是一个函数,该函数将对指定键的值进行处理

map.compute("Two", (k, v) -> v + 10);

#computeIfAbsent方法
computeIfAbsent方法将只在指定键不存在时执行自定义处理。它的第二个参数是一个函数,该函数将返回指定键的默认值。
map.computeIfAbsent("Three", k -> 3);
map.computeIfAbsent("Two", k -> 5);

# computeIfPresent方法
computeIfPresent方法将只在指定键存在时执行自定义处理。它的第二个参数是一个函数,该函数将返回指定键的新值
map.computeIfPresent("Three", (k, v) -> v + 3);
map.computeIfPresent("Two", (k, v) -> v + 10);