2017-07-03 6 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 - 私はOrder2とOrder3を取り戻す必要があります –

答えて

0

リニアまたは非リニアのデータ構造を使用できます。線形データ構造は、時間線に基づいたソート順で注文IDを有するリンクされたリストと同じくらい単純であり得る。 また、Calender-Queueに行くこともできます。範囲間の照会には非常に効率的です。

+0

これをもっと読む必要があります。見てみましょう。ありがとう –

0

binary search treeを使用すると、一部のキーの対応する値だけでなく、ツリーのすべての部分がそのキーよりも大きいか小さいかをすばやく見つけることができます。

たとえば、JavaではTreeMap、特にheadMap,tailMap、およびsubMapのメソッドを使用できます。使用例:

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

これを試したことはありません。見てみましょう。ありがとうございました –

関連する問題