Javas PriorityQueue platziert das kleinste Element am Anfang der Liste, aber ich brauche es, um das größte Element am Kopf zu platzieren. Was ist der beste Weg, um eine Prioritätswarteschlange zu erhalten, die sich so verhält?In Java, was sollte ich für eine PriorityQueue verwenden, die zuerst das größte Element zurückgibt?
Da ich die Klasse in dieser Warteschlange geschrieben habe, konnte ich einfach die Ergebnisse von compareTo
umkehren, es wird nicht außerhalb dieser Warteschlange verwendet.
Aber ich mag es, den Code eine genaue Darstellung dessen zu machen, was ich modelliere, was ich versuche zu tun, ist die größte zuerst, so dass der Code sollte sagen, dass mindestens zuerst mit einer ungewöhnlichen Definition von mindestens.
[bearbeiten] nur ein kurzes Dankeschön an alle, Komparator klingt wie, was ich brauche, sobald ich mir selbst beibringen, wie man einen schreibt.
Dank, werde ich mich gehen beibringen, wie man das tun :) –
Wenn Sie bereits einen Vergleicher haben, aber Sie wollen die umgekehrte Art, könnte man Finde Collections.reverseOrder() hilfreich. –
Danke, aber ich habe es gerade fertig geschrieben, 0 - arg0.compareTo (arg1) ist ordentlicher als mein if, sonst wenn ich denke, dass ich das stattdessen benutze. –