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

标签 java performance data-structures complexity-theory

我有一个类,它将日期存储为键,将价格存储为值。我的数据结构存储了大约 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/

相关文章:

performance - 使用不适合内存的集合

python - 将具有互元素的所有子数组合并为一个子数组

data-structures - 数据结构对嵌入式软件工程师的重要性

具有常量值类型的python字典

java - 为什么前缀类型的 url-pattern 不起作用?(tomcat)

java - 如何使 Android CircleImageView 位于布局中间

java - 在哪里添加数组?

java - 如何让动画在 JAVA 中通过键盘输入运行?

mysql - MySQL 中的 UNION ALL 性能不佳

python - 1 :1 mappings in python? 的数据结构