如何在java中从多嵌套Hashmap中分配和检索值?

时间:2014-02-24 15:31:02

标签: java hashmap

我创建了一个嵌套的HashMap,如下所示

Map<String,String> timeStamptoValues = new HashMap<String, String>();
Map<Map<String,String>,String> timeStampvaluesToStatistics = new HashMap<Map<String,String>, String>();
Map<Map<Map<String,String>,String>,Long> timeStampvaluesStatisticsTovalues = new HashMap<Map<Map<String,String>,String>,Long>();
timeStamptoValues .put("xyz","hello");
timeStampvaluesToStatistics.put(timeStamptoValues,"COUNT");
timeStampvaluesToStatistics.put(timeStamptoValues."MIN");
timeStampvaluesToStatistics.put(timeStamptoValues."MAX");

我面临两个问题

  1. 当我将timeStampvaluesToStatistics的值插入到同一个键时,它将使用最新的条目覆盖值。那我该怎么样了?我尝试在timeStampvaluesToStatistics中创建一个List来代替String。但后来我陷入了下一部分,为每个“COUNT”或“MAX”或“MIN”添加值?

  2. 现在我想基于“COUNT”或“MIN”或“MAX”将值设置为timeStampvaluesStatisticsTovalues。

  3. 我该怎么办?

2 个答案:

答案 0 :(得分:0)

要制作多图(XCollection<Y>的地图),您只需执行以下操作:

Map<X, List<Y>> (or Set<Y> or whatever).

当您添加元素时,只需查询现有值。如果列表存在,则将值添加到其中。如果列表不存在,则创建一个新列表,添加新值,然后将新列表放入地图中。

答案 1 :(得分:0)

不确定我是否理解了这个问题...但是如果你使用Key a String / Long和一个值Map会怎样? 这似乎很奇怪:

Map<Map<String,String>,String> timeStampvaluesToStatistics = new HashMap<Map<String,String>, String>();
Map<Map<Map<String,String>,String>,Long> timeStampvaluesStatisticsTovalues = new HashMap<Map<Map<String,String>,String>,Long>();

地图就像一本字典,根据它的定义搜索一个单词对我来说似乎不正确。 换句话说,我认为你的方法感觉不正确。