【发布时间】:2016-03-04 13:57:33
【问题描述】:
我有以下数据结构:
Map<String,Map<String,String>>
我想从这个复杂的 Map 对象中提取它的值(它本身是另一个字符串 Map)。我目前正在这样做:
Map<String, Map<String, String>> map = getStructure(data,format);
Map<String,String> newMap = new LinkedHashMap<String, String>();
for(Entry<String, Map<String,String>> entry : map.entrySet()) {
for (Entry<String, String> value : entry.getValue().entrySet()) {
newMap.put(value.getKey(),value.getValue());
}
}
由于外部 foreach 循环,上面的实现给了我一个新的 Map 对象,它具有重复的键值对,它正在迭代。好像我错过了什么。
如何从复杂的 Map 对象中提取内部 Map 对象?
编辑:
解决 AlexWien 的评论
原始数据结构:
原始数据结构背后的原因是为一对 ID(ID1 和 ID2)存储单个值。 ID1 和 ID2 可能不同。所以结构如下:
Map<String,Map<String,String>> ===> <someValue, <ID1,ID2>>
我想要实现的是获取每个 someValue 的 id 对(ID1 和 ID2)的完整列表。所以我可以将它们存储在数据库中以跟踪航空信息。
【问题讨论】:
-
您要提取具有给定键的特定地图吗?
-
好问题,我想提取整个地图(包括所有键)
-
@arabian_albert:地图不止一张。有很多内部地图。你想提取哪一张内图?
-
@LouisWasserman 我想要所有这些,所以地图的整个列表
-
您应该举例说明您想要达到的目标。这是非常令人困惑的公式。
标签: java for-loop dictionary data-structures