将所有字母字符加载到散列映射的快速方法

Xit*_*rum 9 java

例如,我有这个Hashmap:

Map<String,Integer> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)

而不是做的map.put("A",0),map.put("B",0)......直到map.put("C",0),有没有什么办法可以让它快?

Dmi*_*nko 21

for循环中执行:

for (char ch = 'A'; ch <= 'Z'; ++ch) 
  map.put(String.valueOf(ch), 0); 
Run Code Online (Sandbox Code Playgroud)


rai*_*mar 5

使用双括号初始化。它非常紧凑,有助于初始化集合。

Map<String, Integer> map = new HashMap<String, Integer>() {
        {
            for (char ch = 'A'; ch <= 'Z'; ++ch) 
                put(String.valueOf(ch), 0); 
        }
};
Run Code Online (Sandbox Code Playgroud)

请注意,在没有映射引用的情况下调用 - put 方法。