我的地图位于key = value对下方,现在如何从集{}中获取GCO值?
MAP : {containerIdentifier={ID=null, dto=null, GCO=123, version=1}, containerEditable=true}
代码:
for (Entry<String, Object> entry : map.entrySet())
System.out.println("Key = " + entry.getKey() +", Value = " + entry.getValue());
输出:
Key = containerIdentifier, Value = {ID =null, dto=null, GCO=123, version=1}
Key = containerEditable, Value = true
如何从价值中获得唯一的GCO 123?
答案 0 :(得分:2)
您必须检查原始Map
的值何时也是Map
。然后,您可以将其转换为Map
并查找内部Map
中特定键的值:
for (Entry<String, Object> entry : map.entrySet()) {
if (entry.getValue() instanceof Map) {
Map innermap = (Map) entry.getValue();
System.out.println(innermap.get("GCO"));
}
}
这假设原始Map
的值并非始终为Map
(并考虑样本Map
中的第二个条目,其值为Boolean
,那个假设是正确的。)
答案 1 :(得分:1)
您可以使用java steam api。
map.values().stream()
.flatMap(innerMaps -> innerMaps.entrySet().stream())
.filter(entry-> "GCO".equals(entry.getKey()))
.map(Map.Entry::getValue)
.findAny().orElse("not found")