【发布时间】:2013-03-12 21:53:54
【问题描述】:
我需要根据多键非常快找到一些值。
密钥由以下部分组成:
< Int userId, String measureName, Date startDate, Date endDate >
并且值是双精度的。
问题是我必须要求指示一天的值,而不是日期范围。
因此,如果我要求userId、measureName 和一天,则数据结构必须以日期在 startDate 和 endDate 之间的值作为答案(日期范围之间没有重叠) .
我不明白哪个是更好的数据结构来实现这一点。哈希表?树图?多键映射?范围地图?帮助! :)
【问题讨论】:
-
每个用户/度量组合可能有多少条目?
-
如果您考虑智能计量/时间序列,则没有。寻找其他解决方案。类似于时间序列
-
不要太多,比如说100,问题是问了很多时间。 (经常调用的函数需要 80k 次)
-
日期范围有多大?也许只需为范围内的每个日期创建一个条目。这是旧的内存与速度决定。
-
Guava 的
RangeMap?
标签: java data-structures hashmap