首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何迭代哈希图,是否需要在Java语言中强制转换keySet()?

如何迭代哈希图,是否需要在Java语言中强制转换keySet()?
EN

Stack Overflow用户
提问于 2014-02-05 22:07:59
回答 2查看 1.2K关注 0票数 1

我有一个关于迭代hashmap的问题:

代码语言:javascript
复制
Map<String, Integer> map = new HashMap<String, Integer>();

我想要迭代这个hashmap,并使用以下代码输出键和值对:

代码语言:javascript
复制
Iterator iterator = portMap.keySet().iterator();

但是它指示我将portMap.keySet().iterator();强制转换为(Iterator)portMap.keySet().iterator();,但是iterator()已经作为迭代器返回,为什么我需要强制转换它?我检查了其他一些代码,iterator()的返回值没有强制转换,原因是什么,如何修复它?

EN

回答 2

Stack Overflow用户

发布于 2014-02-05 22:09:51

如果你想打印这些键和值,你应该改用entrySet

代码语言:javascript
复制
for (Map.Entry<String, Integer> e : map.entrySet()) {
    System.out.println(e.getKey() + " = " + e.getValue());
}

至于您的造型问题,可能是因为您在导入时导入了不同的Iterator类。使用正确的导入,无需强制转换就可以很好地编译:

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

//.....

Map<String, Integer> map = new HashMap<String, Integer>();
Iterator<String> iterator = map.keySet().iterator();
票数 5
EN

Stack Overflow用户

发布于 2014-02-05 22:29:59

您可以通过以下方式使用enhanced loop

代码语言:javascript
复制
for (Entry entry :  map.entrySet()) {
    System.out.format("%s , %s\n", entry.getKey(), entry.getValue());
}

就像这样,你循环遍历映射的所有条目。在导入部分中,您应该导入以下Entry

代码语言:javascript
复制
import java.util.Map.Entry;

因此,complete imports部分将如下所示:

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Map;

import java.util.Map.Entry;

如果您想要遍历这些键并提取每个键的相应值,您可以使用以下方法:

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Map;
// ...
for (String s : map.keySet()) {
   System.out.format("%s , %s\n", s, map.get(s));
}

如果您想使用迭代器并循环遍历键并根据键从映射中提取:

代码语言:javascript
复制
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
//...

Iterator<String> it = map.keySet().iterator();

while (it.hasNext()){
   String currentKey = it.next();
   System.out.format("%s , %s\n", currentKey), map.get(currentKey));
}

我希望这些对你有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21579560

复制
相关文章

相似问题

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