Rang innerhalb eines Vectors?
-
Hallo,
gibt es in Java eine einfache Möglichkeit, den Rang eines Elements innerhalb eines Vektors zu bestimmen?
Das brauche ich als Hilfsmittel. Eigentlich will ich die Elemente eines Vektors auf ihren Rang abbilden, also z.B.:
{100, 20, 50, 30} --> {4, 1, 3, 2}
Gibts da irgendwas oder muss ich alles "zu Fuß" erledigen?
-
Habs doch zu Fuß erledigt. Ging schnell.
Gehe alle Werte des 1. Vektors durch
Für jeden Wert zähle, wie viele Werte im gesamten Vektor kleiner sind. Das ist der Rang.
Füge an den Rang-Vektor den ermittelten Rang an.
-
Eine (wahrscheinlich schnellere) Alternative wäre eventuell eine TreeMap.
Man könnte in einer TreeMap für jedes Vector-Element dessen Wert als Key und eine Referenz auf das ursprüngliche Objekt selbst bzw den Index in Vector als Value verwenden. Die TreeMap sortiert sich beim Einfügen neuer Elemente selbst, also hat man die Elemente dann nach ihrem 'Rang' aufsteigend geordnet.