PriorityQueue manuell neu sortieren?



  • Hallo,
    gibt es eine simple Möglichkeit, eine PriorityQueue per Hand neu zu sortieren?
    Ich ändere die Werte mancher Elemente im Rahmen der Relaxation bei Dijkstra nachträglich, weshalb die Ordnung aus den Fugen gerät.
    Zur Zeit lösche ich einfach alle Elemente aus der Queue, und füge sie wieder ein, damit sie beim Anhängen sortiert werden. Gibt's da was Besseres?

    Edit: Vielleicht war die Frage etwas ungenau gestellt: Ich suche nach etwas wie einer Methode java.util.PriorityQueue.neusortieren() o.ä.

    Danke im Voraus,
    MfG Cox



  • Hi,

    wenn es eine Methode "neusortieren" gäbe, müsste diese hellseherische Fähigkeiten besitzen, um die veränderten Elemente zu identifizieren. Gäbe es also solch eine Methode, würde diese nichts anderes machen, was du bisher schon machst. Nämlich die ganze Sammlung von Objekten neu zusortieren.

    Eine Alternative wäre eine Wrapperklasse für eine PriorityQueue zu schreiben, welche eine update Funktion zur Verfügung stellt, deren Parameter eine Liste von veränderten Objeketen ist. Die Methode macht dann nichts weiteres ausser die entsprechenden Elemente aus der PQ zu entfernen und wieder hinzuzufügen.

    Beste Grüße


Anmelden zum Antworten