所以我有一些代码要学习我将演示其中的一部分,因为我只是对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?

08-24 22:16