我有一个类,它将日期存储为键,将价格存储为值。我的数据结构存储了大约 5M 个条目。当我想检索某个日期范围内的数据时,我将循环遍历数据结构并检查当前数据是否在该日期范围内。
例如
if (startDate >= data.date && data.date <= endDate)
//do something
但是,这是极其低效的。有更好的方法吗?
最佳答案
如果内存/性能不是限制*,您可以简单地使用 TreeMap
,它有 subMap method允许您过滤时间窗口:
TreeMap<Date, Double> data = ...;
for (Double price : data.subMap(startDate, true, endDate, true).values()) {
//do something with price
}
*即例如,如果您不需要将价格保持为原始 double
关于java - 更好的数据结构,用于检索日期之间的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22507648/