【发布时间】:2015-06-18 16:24:04
【问题描述】:
我有一个映射,其中键是值列表并与一个值匹配,如下所示,基本上我想创建一个映射,其中值将再次属于映射类型
key value
Deaswe DealDate
TradeRe TradeRef
Daelet DealDate
TF TradeRef
下面是实现最终在dataMap中我们最终存储元素的代码,如下所示
Map<String, List<String>> dataMap = new HashMap<String, List<String>>();
dataMap.put ("TradeRef", Arrays.asList("TradeRe","TF"));
dataMap.put ("DealDate", Arrays.asList( "Daelet", "Deaswe"));
Map<String, String> itemMap = new HashMap<String, String>(); //New map for item->key mapping
for(String key: dataMap.keySet()) //Get all keys and iterate through
for(String item: dataMap.get(key)) //For each item in your value list
itemMap.put(item, key); //Create new mapping item->key
现在上面的地图工作正常,但我必须修改这个设计,因为我想要另一个地图,其中会有键,它的值将是上面类型的地图,所以它会像
Map<String, Map<String, String>>
换句话说,上面的 dataMap 将是 Map 的值类型
所以结构会像
key Value
B4 -----> dataMap
B5 ----> dataMap
dataMap 有自己的键和值 所以它会像
B4 --> Deaswe --> DealDate
B4 ---> Daelet --> DealDate
B5 ---> TradeRe --> TradeRef
B5 ---> TF --> TradeRef
请告知我们如何创建这个数据结构,其中将有一个映射,哪个值类型将再次属于映射类型,以及我们如何插入和迭代它,请告知 关于这个
【问题讨论】:
-
为什么不创建一个对象而不是地图的地图?您将拥有类似
Map<String, Store> map = ...的内容,并在地图中添加适当的Store实例,并且此Store可能包含List、Map或任何其他包含适当数据并提供查看方法的集合准备这些数据。 -
@LuiggiMendoza stiil 无法完全掌握,请您告诉我们提前谢谢,如果您能发布有助于清楚理解的代码,将不胜感激
-
您希望新地图的元素是
Map<String, String>还是Map<String, List<String>>? -
@patricia 应该是你想要新地图的元素是
Map<String, String>
标签: java dictionary