【问题标题】:Quick Design approach needed需要快速设计方法
【发布时间】:2017-07-03 07:13:32
【问题描述】:

我正在读取一个包含 orderTime(DateTime 对象)和 orderID(字符串)的大文件。我可以使用哪种数据结构以及如何使用 - 这样,给定一个时间范围,我可以将所有订单 ID 作为该时间范围的一部分?

【问题讨论】:

  • 文件示例 2017-07-01 01:01:09 Order1 2017-07-01 01:31:59 Order2 2017-07-01 02:29:59 Order3 现在时间范围为 1.30 - 2.30 - 我应该检索 Order2 和 Order3

标签: data-structures hashmap


【解决方案1】:

您可以使用线性或非线性数据结构。线性数据结构可以像一个链表一样简单,该链表具有基于时间线的排序顺序中的顺序 ID。 你也可以去 Calender-Queue 的。它们对于范围之间的查询非常有效。

【讨论】:

    【解决方案2】:

    您可以使用某种binary search tree,让您不仅可以快速找到某个键​​的对应值,还可以快速找到树中大于或小于该键的所有部分。

    例如,在 Java 中,您可以使用 TreeMap,尤其是 headMaptailMapsubMap 方法。示例用法:

    SortedMap<Date, String> map = new TreeMap<>();
    map.put(someDate, someId);
    ...
    SortedMap<Date, String> between = map.subMap(fromDate, toDate);
    

    【讨论】:

      猜你喜欢
      • 2016-10-04
      • 2011-07-01
      • 2019-06-03
      • 2011-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      相关资源
      最近更新 更多