在java中获取hashmap中列表的值(不是以顺序方式)

时间:2016-06-17 13:01:22

标签: java list hashmap

我遇到了以这种形式<String, List<time,value>>获取散列图值的问题。如果我想简化我的问题,数据结构采用以下格式:

{data1=[fetchTime=123, value=1], [fetchTime=124, value=8], [fetchTime=125,value=0], data2=[fetchTime=123, value=3], [fetchTime=124, value=8], [fetchTime=125, value=6], data3=[fetchTime=123, value=6], [fetchTime=124, value=9], [fetchTime=125, value=1]}

我想要做的是计算&#34;相同&#34;的值的总和。获取时间。所以基本上我想总结123的取指时间值(1 + 3 + 6)和取指时间124(8 + 8 + 9)等等。

此时我只关心算法或任何提示而不是确切的运行代码,所以请建议我如何做。

谢谢!

1 个答案:

答案 0 :(得分:0)

作为一个简单的解决方案,您可以使用另一个hashmap: 即。 resultMap<fetchTime, [long]sum>:)

for each item in hashmap
  //+ extra for for each item of your list 
  if (resultMap.contains(item.fetchTime))
     resultMap.put(item.fetchTime, item.value + resultMap.get(item.value))
  else
     resultMap.put(item.fetchTime, item.value)

for each item in resultMap
  ... print keys and values