Baumkarte:Sortieren von Werten einer Karte mit Schlüsseln, die sich zusammen mit Werten bewegen

StackOverflow https://stackoverflow.com/questions/2145853

  •  23-09-2019
  •  | 
  •  

Frage

ich habe die folgende Baumkarte:

TreeMap<Integer, Double> map;

die doppelten Werte sind nicht eindeutig.

ich durchlaufe die Map mit ganzzahligen Schlüsseln und den Funktionen firstEntry() und higherEntry () und ändere die doppelten Werte.

Jetzt möchte ich die Werte der Paare in der Reihenfolge abnehmender Doppelwerte auflisten.was ist der beste Weg, dies zu tun?

diese ganzzahligen Schlüssel sind mir wichtig und da die doppelten Werte nicht eindeutig sind, kann ich keinen doppelten Schlüssel haben.

Update:Mehr Erklärung es ist das klassische Problem.nehmen wir an, die Anzahl der Schüler ist der Schlüssel und ihr Prozentsatz ist der Wert.sortieren Sie jetzt nach Prozentsatz und dann sollten wir in der Lage sein zu sagen, wessen Prozentsatz es ist.deshalb brauche ich den Integer-Schlüssel.

War es hilfreich?

Lösung

Wenn Sie eine Site mithilfe einer Webvorlage erstellen, gibt es keine Abhängigkeit von dieser Website an der Webvorlage, die es erstellt hat, das ist einer der Hauptunterschiede zwischen Standortvorlagen und Webvorlagen.

Die Webvorlage kann jedoch benutzerdefinierte Funktionen verwenden, die dann eine Abhängigkeit zwischen dem Standort und den mit diesen Funktionen enthaltenen Lösungen erstellen.Diese Abhängigkeiten können von der Tatsache stammen, dass die Funktionen generationstabeditagcode-Elemente enthält, die Dateien und die Site anschließend von diesen in dem Dateisystem vorhandenen Dateien abhängig sind, solange die Dateien ungerechtgelegt sind, oder sie können Listendefinitionen enthalten.

Wenn Sie eine benutzerdefinierte Seite und eine Master-Seite wünschen, jedoch ohne Abhängigkeit von der Funktion, müssen Sie die Seite und die Masterseite mit Code erstellen.

Andere Tipps

Die naheliegende Lösung besteht darin, eine Sammlung der Doppel zu erhalten (möglicherweise über die entrySet und dann getValue - die TreeMap-Klasse hat eine values() methode, die Sie einfach verwenden können), und fahren Sie fort, sie zu sortieren (mit Collections.sort oder Arrays.sort) - dies würde jedoch O(n logn) Zeit in Anspruch nehmen.

Ich bin mir nicht sicher, ob Sie es intelligenter (== schneller) machen können, es sei denn, Sie ändern die Datenstruktur vollständig.Die einzige Möglichkeit, wie ich dies bei einer anderen Datenstruktur sehe, besteht jedoch darin, einen Wrapper über die Ganzzahl und das Double zu halten und zwei Komparatoren zu schreiben - einen, der die vergleicht integer und eine, die zuerst durch die vergleicht double und dann durch die integer.Die ursprüngliche Baumkarte, die Sie verwenden, wäre dieselbe, aber Sie könnten eine andere Baumkarte davon trennen, sortiert nach dem zweiten Komparator.Das Abnehmen würde jedoch immer noch O (n logn) Zeit in Anspruch nehmen.

Was Sie tun können, ist Folgendes: Verwenden Sie Einstiegssatz durch die Einträge durchzusetzen. Setzen Sie sie in eine Liste. Sortieren Sie dann das Datum mit dem richtigen Komparator.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top