我有一个地图,其中键是值列表并匹配一个值,如下所示基本上我想创建一个地图,其中值将再次为地图类型
key value
Deaswe DealDate
TradeRe TradeRef
Daelet DealDate
TF TradeRef
下面是实现最终的代码,最后我们最终存储了如下所示的元素
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的地图,以及我们如何插入和迭代它们请大家告知 在此
答案 0 :(得分:0)
(可以说,这应该是一个评论,但它不合适。)
如果数据结构的要求与标准API类的直接使用非常接近,我会直接使用它。如果事情变得像你的情况一样复杂,我会采取不同的策略:
这有几个优点。复杂的API类组合具有许多功能,大多数功能都不需要指定或测试。迭代某些类组合的复杂性在大多数代码中是隐藏的,并且单独测试。如果由于性能瓶颈或需求变化而需要更改实现,可以在一个类的实现中完成。
我建议在问题中添加外部黑盒要求,而不是根据地图的具体实现。