使用迭代器在HashMap中搜索特定值

时间:2015-11-25 14:19:55

标签: java bluej

我正在尝试使用迭代器在HashMap中搜索特定值,目前我有这个方法。我是Java的新手,所以非常感谢您的帮助。 helper.readAMap是一个存储响应的hashmap,它是在用户键入某个单词时生成的。

   public String generateResponse(String words)
{
    HashMap<String, String> map = new HashMap();
    map = helper.readAMap("replies.txt");
    Iterator<String> it = map.keySet();
    while(it.hasNext()) {
        String word = it.next();
        String response = map.get(word);
        if(response != null) {
            return response;
        }
    } 
    return pickDefaultResponse();

}

1 个答案:

答案 0 :(得分:1)

下面:

if(key.equals(words)) {

您将StringHashSet Strings进行比较。 这就像比较苹果和梨;它永远都是假的。

所以你想要一个String作为你的方法的参数,或者你想要生成对所有单词的回应。

我希望你能这样做:

if(words.contains(key)) { // Your input contains the key
    return map.get(key); // Retrieve the response to the key from the map
}