Java 更好的数据结构,用于检索日期之间的数据

Java 更好的数据结构,用于检索日期之间的数据,java,performance,data-structures,complexity-theory,Java,Performance,Data Structures,Complexity Theory,我有一个类,它存储日期作为键,存储价格作为值。我的数据结构存储了大约500万个条目。当我想要检索某个日期范围内的数据时,我将遍历数据结构并检查当前数据是否在日期范围内 e、 g 如果(startDate>=data.date&&data.date如果内存/性能不是一个约束*,您可以简单地使用一个树状图,该树状图具有一个允许您在时间窗口上进行筛选的: TreeMap<Date, Double> data = ...; for (Double price : data.subMap(st

我有一个类,它存储日期作为键,存储价格作为值。我的数据结构存储了大约500万个条目。当我想要检索某个日期范围内的数据时,我将遍历数据结构并检查当前数据是否在日期范围内

e、 g


如果(startDate>=data.date&&data.date如果内存/性能不是一个约束*,您可以简单地使用一个
树状图
,该树状图具有一个允许您在时间窗口上进行筛选的:

TreeMap<Date, Double> data = ...;
for (Double price : data.subMap(startDate, true, endDate, true).values()) {
    //do something with price
}
TreeMap数据=。。。;
for(双倍价格:data.subMap(startDate,true,endDate,true).values()){
//对价格做点什么
}
*i、 例如,如果您不需要将价格保持为原始双倍价格

  • 确保数据按键排序(即按日期排序)
  • 使用二进制搜索查找开始日期
  • 只要你还没有到达结束日期,就可以枚举

编辑:是的,使用
TreeMap可以很好地自动化工作。不知道是否允许更改数据结构。

谢谢。这正是我想要的。
TreeMap<Date, Double> data = ...;
for (Double price : data.subMap(startDate, true, endDate, true).values()) {
    //do something with price
}