类变量不在调试器中

时间:2014-02-25 09:03:17

标签: java class hashmap scope

我试图找出使用散列图的第一个重复单词,但我无法理解为什么不创建“地图”。我调试了,在调试器中看不到map变量。

import java.util.HashMap;
import java.util.Map;


public class HashMapTest {

static HashMap<String,Integer> map = new HashMap<String, Integer>();


 Boolean findRepeat(String word){
    if(map.containsKey(word) && map.get(word) > 1){
        return true;
    }
    else map.put(word, map.containsKey(word) ?  map.get(word)+1:1);
    return false;
}


public static void main(String[] args) {
    // TODO Auto-generated method stub
    HashMapTest hash = new HashMapTest();
    for(Map.Entry<String, Integer> entry : hash.map.entrySet()){
        System.out.println(entry.getKey());
        System.out.println(entry.getValue());

    }


    String[] arr = "I am a disco dancer you are not a dancer".split(" ");

    for (String word : arr){

        if(hash.findRepeat(word)) System.out.println(word);
    }

}

}

2 个答案:

答案 0 :(得分:0)

Hashmap不能包含重复键(HashMap)

在您的情况下if(map.containsKey(word) && map.get(word) > 1)将始终返回false 它应该是if(map.containsKey(word) && map.get(word) == 1)

答案 1 :(得分:0)

问题在于findRepeat。如果您已经有任何给定项目的条目,则需要重复,因此您需要替换此条件

if(map.containsKey(word) && map.get(word) > 1){

if(map.containsKey(word) && map.get(word) > 0){

到目前为止,您需要检查地图是否有任何字词。

希望这有帮助