比如我有此HashMap:快速的方式來所有字母加載到一個HashMap
Map<String,Integer> map = new HashMap<>();
而不是做map.put("A",0)
,map.put("B",0)
...直到map.put("C",0)
,有什麼辦法可以讓它快?
比如我有此HashMap:快速的方式來所有字母加載到一個HashMap
Map<String,Integer> map = new HashMap<>();
而不是做map.put("A",0)
,map.put("B",0)
...直到map.put("C",0)
,有什麼辦法可以讓它快?
做在for循環:
for (char ch = 'A'; ch <= 'Z'; ++ch)
map.put(String.valueOf(ch), 0);
試試這個:
Map<String,Integer> map = new HashMap<>();
for (int i = 65; i <= 90; i++) {
map.put(Character.toString((char) i), 0);
}
ASCII代碼(65和90)是相當不可讀的(幻數);更好地使用char:for(char i ='A'; i <='Z'; ++ i)等 –
是的,你是對的;)這僅僅是一個例子。 – Samoth
@DmitryBychenko可以在這種情況下詳細說明或給出一個鏈接,指出你的意思是幻數? –
使用雙括號初始化。它非常緊湊並且有助於初始化集合。
Map<String, Integer> map = new HashMap<String, Integer>() {
{
for (char ch = 'A'; ch <= 'Z'; ++ch)
put(String.valueOf(ch), 0);
}
};
請注意 - put方法在沒有地圖引用的情況下調用。
你是什麼意思**讓它快**?性能明智嗎? – Sanjeev
爲什麼?使用map.put(「A」,0)'有什麼問題? –
爲什麼'字符串'而不是'字符'作爲地圖鍵? – fge