我有一个list
,其中包含类类型的地图。我想迭代list
并获取内部地图的key
和values
。
以下是List
:
quotationList = quotationService.searchByIdList(accountId, Account.class);
它包含一个索引,即0索引,它包含一个映射。我需要获得该地图的关键和值。
我的尝试:
for (int i = 0; i < quotationList.size(); i++) {
Map myMap = (Map) quotationList.get(i);
System.out.println("Data For Map" + i);
for (Entry<String, Object> entrySet : ((Map<String, Object>) myMap).entrySet()) {
System.out.println("Key = " + entrySet.getKey() + " , Value = " + entrySet.getValue());
}
}
答案 0 :(得分:2)
获取列表中的第一项:
Map<MyKey, MyValue> myMap = quotationList.get(0);
获取地图的值:
myMap.entrySet();
下一步是循环该entrySet:
for (Entry<MyKey, MyValue> entry : myMap.entrySet()) {
MyKey key = entry.getKey();
MyValue value = entry.getValue();
}
答案 1 :(得分:0)
Java 8:如果你的地图是Map<String, String>
那么
quotationList.forEach(item -> item.entrySet().forEach(entry -> {
String key = entry.getKey();
String value = entry.getValue();
}));
答案 2 :(得分:0)
如果列表包含元素,那么您的代码应该打印地图的内容。
以下是您的代码在列表中有一个地图元素,它正在打印地图的内容:
列表&gt; quotationList = new ArrayList&gt;();
Map<String, Object> map= new HashMap<String, Object>();
map.put("key1", "value1");
quotationList.add(map);
for (int i = 0; i < quotationList.size(); i++) {
Map myMap = (Map) quotationList.get(i);
System.out.println("Data For Map" + i);
for (Entry<String, Object> entrySet : ((Map<String, Object>) myMap).entrySet()) {
System.out.println("Key = " + entrySet.getKey() + " , Value = " + entrySet.getValue());
}
}
它将产生输出:
Map0的数据 Key = key1,Value = value1