我正在尝试使用迭代器在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();
}
答案 0 :(得分:1)
下面:
if(key.equals(words)) {
您将String
与HashSet
Strings
进行比较。 这就像比较苹果和梨;它永远都是假的。
所以你想要一个String
作为你的方法的参数,或者你想要生成对所有单词的回应。
我希望你能这样做:
if(words.contains(key)) { // Your input contains the key
return map.get(key); // Retrieve the response to the key from the map
}