迭代Hashmap:不兼容的类型

时间:2016-10-06 21:07:59

标签: java hashmap iterator

我有一个HashMap并希望迭代它。但不知何故,它说我有不兼容的类型。

Required: java.util.Map.Entry <java.lang.String , java.lang.String>
 Found : java.lang.Object

继承我的代码:

 Map hashmapMessagesKey = new HashMap<String,String>();
 for (Map.Entry<String, String> entry : hashmapMessagesKey.entrySet()) {

  }

2 个答案:

答案 0 :(得分:2)

变量的声明类型是决定因素,而不是初始化。您声明的类型当前是原始Map类型,但应该是通用的:

Map<String, String> hashmapMessagesKey = new HashMap<>();

此外,根据您的用例,for-each方法可能更具可读性,因为您可以命名键和值,而不是使用entry.getKey()和entry.getValue():

hashmapMessagesKey.forEach((key, value) -> {
    // loop body
});

答案 1 :(得分:1)

你的地图定义似乎是错误的。

Map<String, String> map= new HashMap<String, String>();