2017-07-03 67 views
1

我正在阅读有orderTime(DateTime对象)& orderID(String)的大文件。我可以使用哪种数据结构以及如何 - 给定时间范围,我可以将所有订单ID作为该时间范围的一部分?所需的快速设计方法

+0

文件例如 2017年7月1日1点01分09秒Order1 2017年7月1日1点31分59秒Order2 2017年7月1日2点29分59秒Order3 现在对于时间范围1.30 - 2.30 - 我应该retreve Order2&Order3 –

回答

0

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

+0

需要阅读更多关于此..请看看。谢谢 –

0

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

例如,在Java中,您可以使用TreeMap,特别是headMap,tailMapsubMap方法。实例:

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

从未尝试过。会看看。谢谢 –