我想输出List<中的所有键/值对。地图<字符串,字符串>>。我怎么能做到这一点?
我已经尝试了以下内容:
public void myFunction (List<Map<String,String>> list){
Iterator <Map<String, String>> iterator = list.iterator();
while (iterator.hasNext()){
for (String key: ((Map<String, String>) iterator).keySet()){
System.out.println(key + " " + ((Map<String, String>) iterator).get(key).toString());
}
}
}
但是我得到了一个java.lang.ClassCastException:java.util.ArrayList $ Itr无法转换为java.util.Map异常。
我做错了什么?或者我该怎么办?
答案 0 :(得分:1)
List<Map<String,String>> list = null;
for(Map<String,String> m : list){
for(Entry<String, String> en : m.entrySet()){
System.out.println(en.getKey());
System.out.println(en.getValue());
}
}
对于列表中的每个映射,循环遍历其条目集中的每个条目。这样您就不必担心迭代器,因为它是一个简单的foreach循环。
答案 1 :(得分:0)
如果我理解了您的问题,您可以使用for-each循环,keySet()
就像这样,
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String,String> testMap = new HashMap<String, String>();
testMap.put("Hello", "World");
testMap.put("Goodbye", "World");
list.add(testMap);
for (Map<String, String> map : list) {
for (String key : map.keySet()) {
System.out.printf("%s = %s\n", key, map.get(key));
}
}
输出
Goodbye = World
Hello = World