2017-07-03 3 views
1

Ich lese eine riesige Datei mit OrderTime (DateTime-Objekt) & orderID (String). Welche Datenstruktur kann ich verwenden und wie - damit kann ich bei einem Zeitbereich alle Auftrags-IDs als Teil dieses Zeitbereichs angeben?Quick Design Ansatz benötigt

+0

Datei Beispiel 2017.07.01 01.01.09 Order1 2017.07.01 01.31.59 order2 2017.07.01 02.29.59 Order3 Jetzt für Zeitbereich 1.30 - 2.30 - Ich sollte Order2 & Order3 –

Antwort

0

Sie können lineare oder nichtlineare Datenstrukturen verwenden. Lineare Datenstruktur könnte so einfach sein wie eine verkettete Liste mit den Ordnungs-IDs in einer zeitlinienbasierten sortierten Reihenfolge. Sie können auch für die Kalender-Warteschlange gehen. Sie sind sehr effizient für die Abfrage zwischen Bereichen.

+0

retreve müssen mehr dazu lesen..wird einen Blick darauf werfen. Danke –

0

Sie können eine Art binary search tree verwenden, so dass Sie schnell nicht nur den entsprechenden Wert für einen Schlüssel finden können, sondern auch alle Teile des Baums, die größer oder kleiner als dieser Schlüssel sind.

Zum Beispiel in Java könnten Sie eine TreeMap verwenden und insbesondere die headMap, tailMap und subMap Methoden. Beispiel Nutzung:

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

Habe das nie versucht. schau dir das mal an. Danke –