[英]Java: can't use Map.Entry to iterate over a Map?
我見過的每個 Java Map 迭代示例都推薦這種范例:
for (Map.Entry<String, String> item : hashMap.entrySet()) {
String key = item.getKey();
String value = item.getValue();
}
但是,當我嘗試這樣做時,我的編譯器會發出警告:
Incompatible types: java.lang.Object cannot be converted to java.util.Map.Entry<java.lang.String, java.lang.Object>
這是我的代碼——我看到的唯一問題是我正在遍歷 Map 個對象的數組,然后遍歷單個 Map 的元素:
result = getArrayOfMaps();
// Force to List LinkedHashMap
List<LinkedHashMap> result2 = new ArrayList<LinkedHashMap>();
for (Map m : result) {
LinkedHashMap<String, Object> n = new LinkedHashMap<>();
for (Map.Entry<String, Object> entry : m.entrySet()) {
n.put(entry.getKey(),entry.getValue());
}
result2.add(n);
}
我是否遺漏了明顯的東西?
發生這種情況是因為您使用的是原始類型: List<LinkedHashMap>
而不是List<LinkedHashMap<Something, SomethingElse>>
。 因此, entrySet
只是一個Set
而不是Set<Map.Entry<Something, SomethingElse>>
。 不要那樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.