当前位置: 首页 > 面试题库 >

如何在Java中使用foreach循环遍历HashMap中的值?

栾弘新
2023-03-14
问题内容

我正在尝试编译以下代码:

private String dataToString(){
    Map data = (HashMap<MyClass.Key, String>) getData();
    String toString = "";
    for( MyClass.Key key: data.keySet() ){
        toString += key.toString() + ": " + data.get( key );
    return toString;
}

我在for行中看到一条错误消息:

不兼容的类型
找到:java.lang.Object
必需:MyClass.Key

getData()方法返回一个Object(但在这种情况下,Object返回的HashMap结构)。
MyClass.Key是我为应用程序创建的枚举(在另一个类文件-中MyClass)。

当我在中创建具有相同结构的foreach循环时MyClass.java,我没有遇到此问题。

我究竟做错了什么?


问题答案:

一种更有效的方法

  Map<MyClass.Key, String> data = (HashMap<MyClass.Key, String>) getData(); 
  StringBuffer sb = new StringBuffer();
  for (Map.Entry<MyClass.Key,String> entry : data.entrySet()) {
       sb.append(entry.getKey());
       sb.append(": ");
       sb.append(entry.getValue());
   }
   return sb.toString();

如果有可能,请定义“ getData”,以便您不需要强制转换。



 类似资料:
  • 需要帮助通过简单的HTML DOM解析器遍历DOM树。如果有人能花点时间来看看它是如何工作的,那么如果我能理解的话,知识渊博的PHP程序员应该能很快理解它。我陷入困境的地方是从我朋友的俄罗斯篮球网站上的一个部门那里得到文章。例如,以下是博客div的外观: 这就是我如何拉出单个“a”链接并显示它们的方法,但我想做的是获取所有链接的div标题,基本上对它们进行分类,而不是将所有内容都排成一行。我不知道

  • 问题内容: 如何在JSP中循环通过? 问题答案: 就像使用普通Java代码一样。 但是,(JSP文件中的原始Java代码,那些东西)被认为是不明智的做法。我建议安装JSTL(只需将JAR文件放入其中,并在JSP顶部声明所需的taglib)。它有一可以迭代的标签Map。每次迭代都会给你带来反过来,而反过来又具有和方法。 这是一个基本示例: 因此,你的特定问题可以通过以下方式解决: 你需要将Servl

  • 在给定的数组中,我想计算左边唯一的连续值,这些值小于或等于每个值。 例如在下面的数组中,第一个索引值是100,所以没有比它更小的值,它将是1。对于值70,有60比它小,所以计数是2,依此类推。 注意:这应该使用stack来完成(这是一个stack实践问题)。 我的方法是: 我试图用这种方式解决: 在数组中运行循环,每次向堆栈添加数组值 问题:现在的问题是:因为它第一次会正常工作,但下一次不会。 问

  • 我的Flutter项目中有一个Dart枚举,如下所示: 如果我有一些随机枚举状态,如,我如何迭代到下一个枚举(而不需要做一些事情,如用开关语句映射它们)? 我在这个,这个和这个的帮助下找到了答案,所以我把它贴在下面。

  • 本文向大家介绍MongoDB数据库forEach循环遍历用法,包括了MongoDB数据库forEach循环遍历用法的使用技巧和注意事项,需要的朋友参考一下 MongoDB数据库forEach语句循环遍历功能是非常常用的一个功能。 采用foreach循环遍历,并每次循环允许执行一次回调函数。 此外,foreach循环遍历是for循环的一种扩展,对比同浏览器端的forEach用法是一致的。 示例如下:

  • 对于这个问题,我需要用一个公式求出两个点之间的距离,给定两个点的坐标和值p。我让程序为一个输入行工作,但我希望用户能够输入多行,并让程序循环通过它们。例如: 1.0 1.0 2.0 2.0 1.0 我对java相当陌生,还在学习,所以我很感激我能得到的任何帮助。提前谢了。