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

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

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”,以便您不需要强制转换。

以上是 如何在Java中使用foreach循环遍历HashMap中的值? 的全部内容, 来源链接: utcz.com/qa/400905.html

回到顶部