簡體   English   中英

Java:不能使用 Map。要迭代 Map 的條目?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM