簡體   English   中英

哈希表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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM