2017-07-07 2 views
0

Ein Baum existiert, der Erdbebeninformationen als Objekte speichert (enthält Daten wie Stärke, Datum des Erdbebens, Tiefe des Erdbebens). Ich möchte die Objekte anhand bestimmter Kriterien wie der Erdbebentiefe (aufsteigend oder absteigend) filtern und jedes Objekt zu einem neuen Baum hinzufügen, bei dem alle Erdbeben auf Grundlage der spezifischen Kriterien geordnet werden. Ich möchte nicht jedes Mal den gleichen Baum sortieren, sondern stattdessen verschiedene Bäume für verschiedene Filter haben und dann in der Reihenfolge suchen, um ein bestimmtes Erdbebenobjekt zu erhalten. Es können auch mehrere Filter verwendet werden. Ich möchte nicht den Code, sondern das algorithmische Denken, das zur Lösung eines solchen Problems verwendet wird, insbesondere, wie man durch den ursprünglichen Baum gehen und dann die Objekte geordnet in das neue einfügen würde.Der beste Weg in Java, um einen neuen Baum zu erstellen, der geordnete Daten basierend auf einem bestimmten Kriterium enthält

Antwort

0

Sie können einen mit einem benutzerdefinierten Komparator verwenden (sortiert nach der natürlichen Reihenfolge der Schlüssel standardmäßig).

Um es mit einem benutzerdefinierten zu verwenden Comaparator Sie einfach den Komparator in den Konstruktor des TreeMap passieren:

TreeMap<SomeKey, Earthquake> earthquakes = 
      new TreeMap<>(new YourCustomEarthquakeComparator()); 

Dann wird, um getrennte Bäume zu haben, die die Erdbeben in einer anderen Reihenfolge sortieren, definieren Sie einfach mehrere Komparatoren, die verschiedene Felder der Erdbeben vergleichen.

Verwandte Themen