【JAVA】Map构造+初始化

1. 使用静态初始化

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

class Scratch {
    private static final Map rank = new HashMap<>();
    static
    {
        rank.put("1", "lisa");
        rank.put("2", "John");
    }
    public static void main(String[] args) {
        rank.forEach((key, value)->System.out.printf("key: %s, value: %s\n", key, value));
    }
}

结果:

key: 1, value: lisa
key: 2, value: John

2. 使用匿名类进行初始化

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

class Scratch {
    public static void main(String[] args) {
        Map rank = new HashMap(){{
           put("1", "lisa");
           put("2", "John");
        }};
        rank.forEach((key, value)->System.out.printf("key: %s, value: %s\n", key, value));
    }
}

结果:

key: 1, value: lisa
key: 2, value: John

HashMap 此写法虽文艺 但有内存泄露隐患

3. 使用 Guava 工具类 ImmutableMap 创建

Map left = ImmutableMap.of("a", 1, "b", 2, "c", 3);
//或者
Map test = ImmutableMap.builder()
    .put("k1", "v1")
    .put("k2", "v2")
    ...
    .build();

这种方法来自 JAVA构造MAP并初始化MAP
工程中如有引用到 Guava 使用此方法我觉得是极好的

你可能感兴趣的:(【JAVA】Map构造+初始化)