我有一个返回的方法List<Map<String,Object>>.
如何迭代列表 List<Map<String,Object>>?
Whi*_*g34 23
听起来你正在寻找这样的东西:
List<Map<String, Object>> list; // this is what you have already
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
}
}
Run Code Online (Sandbox Code Playgroud)
List<Map<String, Object>> list = getMyMap();
for (Map<String, Object> map : list) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println(entry.getKey() + " - " + entry.getValue());
}
}
Run Code Online (Sandbox Code Playgroud)
使用 java 1.8 (8) 你可以将其重写为:
list.forEach(item ->
item.forEach((k, v) -> System.out.println(k + ": " + (String)v)
);
Run Code Online (Sandbox Code Playgroud)
小智 5
我正在向您发布一个简单的示例List<Map<String,Object>>。
public static void main(String[] args){
Map<String,Object> map1 = new HashMap<>();
map1.put("Map1 Key1", (Object) "Map1 value1");
map1.put("Map1 Key2", (Object) "Map1 value2");
Map<String,Object> map2 = new HashMap<>();
map2.put("Map2 Key1", (Object) "Map2 value1");
map2.put("Map2 Key2", (Object) "Map2 value2");
List<Map<String,Object>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.stream().forEach(mapsData->{
mapsData.entrySet().forEach(mapData->{
System.out.println("Key:"+mapData.getKey()+ " Value:"+mapData.getValue());
});
});
}
Run Code Online (Sandbox Code Playgroud)
这应该有效:
List<Map<String, Object>> list = ...
for (Map<String, Object> map : list)
{
...
}
Run Code Online (Sandbox Code Playgroud)
您还可以在 for 循环中使用迭代器或get方法来访问 List 中的元素。