所以我有一些代码要学习我将演示其中的一部分,因为我只是对hashmap的一个步骤感到困惑。如果我运行下面的代码,输入一个字符串,比如(“ploploplp”),“p”被映射到91,l被映射到61,o被映射到31我得到的唯一键值对是o映射到31。在这段代码中,p和l不应该分别映射到32和33吗?任何意见都会有很大帮助的,谢谢。
public static void printDuplicateCharacters(String word){
char[] characters = word.toCharArray();
Map<Character, Integer> charMap = new HashMap<Character, Integer>();
for (Character ch: characters){
if (charMap.containsKey(ch)){
charMap.put(ch, charMap.get(ch) + 30);
} else{
charMap.put(ch, 1);
}
}
最佳答案
see "p" in your code,
1.first 'p' not contains , so call charMap.put(ch, 1); now in map 'p'->1 ,right?
2.second 'p' contains map , so call charMap.put(ch, charMap.get(ch) + 30); now in map
'p'-> 31 , right?
3.third 'p' in map 'p'->61 , right?
4.fourth 'p' in map 'p'->91 , right?