首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >For each循环on Java HashMap

For each循环on Java HashMap
EN

Stack Overflow用户
提问于 2013-01-04 09:47:22
回答 4查看 91.4K关注 0票数 19

我写的一个基本聊天程序有几个关键字,可以生成特殊的动作、图像、消息等。我将所有的关键字和特殊功能存储在一个HashMap中。关键字是关键字,函数是值。我想用某种类型的循环来比较用户输入和按键。我已经尝试了我能想到的所有方法,但都不起作用。这是我能想到的:

代码语言:javascript
复制
myHashMap = <File Input>
for(String currentKey : <List of HashMap Keys>){
    if(user.getInput().equalsIgnoreCase(currentKey)){
        //Do related Value action
    }
}
...

如果有任何帮助,我将不胜感激。如果我忽略了一个类似的问题,或者答案很明显,请原谅。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-04 09:51:19

嗯,你可以这样写:

代码语言:javascript
复制
for(String currentKey : myHashMap.keySet()){

但这并不是使用散列映射的最佳方式。

一种更好的方法是用全小写的键填充myHashMap,然后写道:

代码语言:javascript
复制
theFunction = myHashMap.get(user.getInput().toLowerCase());

检索函数(如果用户输入没有出现在映射中,则为null )。

票数 24
EN

Stack Overflow用户

发布于 2013-01-04 10:01:15

如果您需要同时访问键和值,那么这是最有效的方法

代码语言:javascript
复制
    for(Entry<String, String> e : m.entrySet()) {
        String key = e.getKey();
        String value = e.getValue();
    }
票数 70
EN

Stack Overflow用户

发布于 2016-10-19 15:38:09

仅限于Java 8及更高版本

代码语言:javascript
复制
map.forEach((k,v)->System.out.println("Key: " + k + "Value: " + v));
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14149984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档