【问题标题】:What's a good way to model a calendar-like database in Java?在 Java 中对类日历数据库建模的好方法是什么?
【发布时间】:2025-11-26 10:20:07
【问题描述】:

我从{timestamp}, {data1}, {data2} 格式的CSV 文件中获取数据。

我正在寻找一种将数据存储在数据结构中的理智、明智的方式,以便我可以轻松地执行以下操作:

  1. 对于给定的Date 对象,找到与该日期关联的正确数据。
  2. 如果日期没有直接匹配,则查找上一项和下一项。

哈希表很容易满足第一个要求。如果 Hashtable 具有固有顺序,则第二个 很容易,在这种情况下,我可以找到仍然低于我给定日期的前一个项目的最大条目,以及下一个条目。

既然不是这样,那么在这里使用什么数据结构好呢?

【问题讨论】:

    标签: java data-structures


    【解决方案1】:

    使用 SortedMap。

    使用 Map.get() 检索完全匹配的数据。如果没有可用数据,请使用 SortedMap.tailMap(date) 和 SortedMap.headMap(date) 检索大于和小于给定日期的元素。

    【讨论】:

    • 其他读者应该注意,SortedMap 是抽象的。要实例化它,请使用 TreeMap,如 SortedMap<keyType, contentType> map = new TreeMap<keyType, contentType>();
    最近更新 更多