【发布时间】:2016-10-08 05:20:12
【问题描述】:
所以有 3 层。我有一个带有键值对的映射,其中值是另一个映射。第二个地图有键值对,其中值就是值。
所以每个键都有另一个与之配对的键,第二个键有值。
这是我尝试的:
Map<Integer, Map<String, String>> multiMap = new HashMap<>();
例如:这是我需要放入地图的数据:
1 => fruit => apple
=> color => red
=> day => friday
2 => fruit => orange
=> color => blue
=> day => monday
3 => fruit => banana
=> color => red
=> day => thursday
所以如果我这样做Map<Integer, Map<String, String>> multiMap = new HashMap<>();
如果我想获得最喜欢的颜色 2,我想做favColor2 = multiMap.get(2).get(color) 或类似的事情。
这是最好的方法吗?我在向地图添加数据时遇到问题。
我无法添加这些数据。它给出了错误。所以我先尝试multiMap.put(1, new HashMap<String, String>());,然后在其中添加“水果”,我尝试multiMap.get(1).put(fruit, apple);,但它不起作用
【问题讨论】:
-
您正在做的事情确实有效,并且可能是我会这样做的方式,尽管还有其他方式。但是,我投票决定将其作为基于意见的方式结束,因为“这是最好的方法”本质上是一个基于意见的问题。
-
你的做法是对的……最好的方法……如果是关于地图,我也会这样做……
-
如果你有一个带有递增整数键的 Map,那么我认为你应该使用 ArrayList 代替
-
这听起来像是XY Problem。如果您解释您的真正目标是什么,也许我们可以为您指明正确的方向。
-
@nhouser9 是的,对不起,我将我的问题添加到底部的问题中
标签: java dictionary arraylist multimap