我写的一个基本聊天程序有几个关键字,可以生成特殊的动作、图像、消息等。我将所有的关键字和特殊功能存储在一个HashMap中。关键字是关键字,函数是值。我想用某种类型的循环来比较用户输入和按键。我已经尝试了我能想到的所有方法,但都不起作用。这是我能想到的:
myHashMap = <File Input>
for(String currentKey : <List of HashMap Keys>){
if(user.getInput().equalsIgnoreCase(currentKey)){
//Do related Value action
}
}
...
如果有任何帮助,我将不胜感激。如果我忽略了一个类似的问题,或者答案很明显,请原谅。
发布于 2013-01-04 09:51:19
嗯,你可以这样写:
for(String currentKey : myHashMap.keySet()){
但这并不是使用散列映射的最佳方式。
一种更好的方法是用全小写的键填充myHashMap
,然后写道:
theFunction = myHashMap.get(user.getInput().toLowerCase());
检索函数(如果用户输入没有出现在映射中,则为null
)。
发布于 2013-01-04 10:01:15
如果您需要同时访问键和值,那么这是最有效的方法
for(Entry<String, String> e : m.entrySet()) {
String key = e.getKey();
String value = e.getValue();
}
发布于 2016-10-19 15:38:09
仅限于Java 8及更高版本
map.forEach((k,v)->System.out.println("Key: " + k + "Value: " + v));
https://stackoverflow.com/questions/14149984
复制相似问题