关于java:将所有字母字符加载到hashmap的快速方法

Fast way to load all alphabetic characters to a hashmap

例如,我有这个Hashmap:

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

而不是map.put("A",0)map.put("B",0) ......直到map.put("C",0),我们有什么方法可以让它快速?


在for循环中执行:

1
2
for (char ch = 'A'; ch <= 'Z'; ++ch)
  map.put(String.valueOf(ch), 0);

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

1
2
3
4
5
6
Map<String, Integer> map = new HashMap<String, Integer>() {
        {
            for (char ch = 'A'; ch <= 'Z'; ++ch)
                put(String.valueOf(ch), 0);
        }
};

请注意 - 调用put方法而不使用地图引用。


试试这个:

1
2
3
4
Map<String,Integer> map = new HashMap<>();
for (int i = 65; i <= 90; i++) {
      map.put(Character.toString((char) i), 0);
}


使用io.vavr

1
2
3
4
5
6
7
8
9
10
11
public HashMap<String,Integer> alphanumericAlphabet() {
    return CharSeq
            .rangeClosed('0','9')
            .appendAll(CharSeq.rangeClosed('a','z'))
            .appendAll(CharSeq.rangeClosed('A','Z'))
            .map(character ->Tuple.of(
                    character.toString(),
                    Character.getNumericValue(character)
            ))
            .collect(HashMap.collector());
}