Hashtable contains() 不读取 char 类型

Hashtable contains() doesn't read char type

出于某种原因,我的哈希表的 contains() 方法不起作用。我正在尝试创建一个哈希表来记录每个字母在一个单词中出现的次数。

character : # of occurrences

如果能深入了解我做错了什么,我将不胜感激。

Hashtable<Character, Integer> table = new Hashtable<Character, Integer>();
char[] array = word.toCharArray();

//inserting letters into table
for (char letter : array) {

    //letter is already in table
    if (table.contains(letter)) {
        int x = table.get(letter);
        x++;
        //overwriting with updated value
        table.put(letter, x);
    }
    //if letter is not already in table
    else {
        table.put(letter, 1);
    }
}

这是因为 contains 方法寻找的是值,而不是键,你必须使用 containsKey() 方法,它在你的情况下接收字符 它应该看起来像这样

更新:这次重构怎么样?

        String word ="hello";
    Hashtable<Character, Integer> table = new Hashtable<Character, Integer>();

    //inserting letters into table
    int x;
    for (char letter : word.toCharArray()) {

        //letter is already in table
        if (table.containsKey(letter)) {
            x = table.get(letter)+1;
        }
        //if letter is not already in table
        else {
            x=1;
        }
        table.put(letter, x);
    }
    System.out.println( table);