gpt4 book ai didi

java - 从无限时间序列中获取一系列数据

转载 作者:行者123 更新时间:2023-12-03 22:58:57 25 4
gpt4 key购买 nike

我有一张 map 以下列格式存储时间序列数据

HashMap<Date,Double> infiniteTimeSeries;

变量 infiniteTimeSeries 可以有从 1AD 到甚至 2100AD 的数据。当用户询问 Jan-1-1970 到 Jan-1-1972 之间的值时,我需要选择仅与请求的时间范围对应的数据。

有没有简单的方法来做到这一点?就像一个图书馆。我试图避免在 map 上循环,因为 map 甚至可以有 100 年的数据,并且在短的请求时间范围内迭代 300000 个元素会严重影响性能

欢迎大家提出宝贵意见

最佳答案

你可以使用 TreeMap 而不是 HashMap。

默认情况下,TreeMap 按其键的自然顺序排序。 java.util.Date类通过实现 Comparable<Date> 定义自然排序.

从 TreeMap 中,您可以使用 TreeMap.subMap() 获取一系列键的 map 子集。 .此版本扩展自 fromKey包括 toKey独家的。 ( sibling 允许其他选择。)

public SortedMap<K,V> subMap(K fromKey,
K toKey)

顺便说一句,如果您使用的是 Java 8,您可能会考虑使用新的 Instant类而不是旧的 Date 类。 Instant 还实现了 Comparable。

关于java - 从无限时间序列中获取一系列数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com