gpt4 book ai didi

java - 在 HashMap 中搜索会返回所有存储的值,而不仅仅是搜索到的值

转载 作者:行者123 更新时间:2023-12-01 18:08:53 24 4
gpt4 key购买 nike

在我的 HashMap 中搜索特定键(在本例中为名称)时,它返回存储在 HashMap 中的所有值,而不仅仅是我所在的值后。

搜索功能代码:

if (e.getSource()==btnSearch) {

Set setSearch = hmap.entrySet();
Iterator iterator = setSearch.iterator();
while(iterator.hasNext()) {
Map.Entry mentrySearch = (Map.Entry)iterator.next();
if(hmap.containsKey(txtSearch.getText())){
txtOutput.append(" Search Returned Student " + mentrySearch.getKey() + " and their mark was: " + mentrySearch.getValue() + "\n");
} else {
txtOutput.append(" Student not found. \n");
}
}
}

我是 Java 新手,所以这个小细节让我很恼火,因为我的程序已完成 90%。我有一个删除功能,它确实有效,并且只删除选定的一个键。

最佳答案

您正在循环内搜索键,该循环迭代整个 Map 的条目(这就是迭代 hmap.entrySet() 的含义)。如果您只需要搜索一个键,请摆脱循环。

您所需要的是:

     if(hmap.containsKey(txtSearch.getText())){
txtOutput.append(" Search Returned Student " + txtSearch.getText() + " and their mark was: " + hmap.get(txtSearch.getText()) + "\n");
} else {
txtOutput.append(" Student not found. \n");
}

或者只是将 hmap.get(txtSearch.getText()) 分配给某个变量(我不确定该变量应该是什么类型)并检查它是否为 null。

关于java - 在 HashMap 中搜索会返回所有存储的值,而不仅仅是搜索到的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34383101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com