Wieso benutzen PriorityQueues Heaps?

phili3

Mitglied
Hallo,
so wie ich verstanden habe, wird für PriorityQueues immer eine Max oder Min Heap Struktur verwendet.
Aber wenn ich beispielsweise eine MaxHeap Struktur ausgeben lasse, ist diese ja noch nicht richtig der Größe nach geordnet. Man müsste sie noch mit Hilfe des Heapsort Alg. sortieren. Davon ist bei der Implementierung von PriorityQueues aber nie die Rede.
Hoffentlich kann mich hier jemand aufklären.
Danke!
 
Wenn für PriorityQueues kein Comparator angegeben ist wird die natürliche Ordnung der Elemente verwendet. Das bedeutet die Elemente haben nach dem Einfügen eine vermeintlich zufälliger Reihenfolge. Das kleinste bzw größte Element befindet sich immer am Kopf der Queue (links).
 
Zuletzt bearbeitet:
Das bedeutet die Elemente haben nach dem Einfügen eine vermeintlich zufälliger Reihenfolge.
Eigentlich bedeutet das, dass die Elemente das Comparable-Interface implementieren müssen und entsprechend der darüber definierten Reihenfolge sortiert ausgegeben werden. Das Einfügen eines Objekts ohne Comparable-Implementierung in eine PriorityQueue, die ohne Comparator erzeugt wurde, löst eine ClassCastException aus.
 

Zurück
Oben