Heim >Java >javaLernprogramm >Wie kann ich die Sortierreihenfolge einer PriorityQueue anpassen?
Anpassen der Sortierreihenfolge in einer PriorityQueue
Eine PriorityQueue ist eine nützliche Datenstruktur, die eine sortierte Reihenfolge ihrer Elemente beibehält. Standardmäßig wird nach der natürlichen Reihenfolge seiner Elemente sortiert. Um diese Reihenfolge anzupassen, können Sie einen Comparator verwenden.
Verwendung eines Comparators
Der PriorityQueue-Konstruktor verfügt über eine Überladung, die einen Comparator als Argument verwendet. Dieser Komparator definiert die Sortierkriterien für die Warteschlange. Betrachten Sie beispielsweise eine PriorityQueue, die Zeichenfolgen nach ihrer Länge sortiert:
Comparator<String> comparator = new StringLengthComparator(); PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
Comparator-Implementierung
Die StringLengthComparator-Klasse implementiert die Comparator-Schnittstelle:
public class StringLengthComparator implements Comparator<String> { public int compare(String x, String y) { return x.length() - y.length(); } }
Durch den Vergleich der Stringlängen ermittelt der Komparator die gewünschte Sortierung bestellen.
Angebot vs. Hinzufügen
Die Angebots- und die Add-Methode fügen beide ein Element zur Warteschlange hinzu. Allerdings gibt offer true zurück, wenn das Element erfolgreich hinzugefügt wurde, während add eine Ausnahme auslöst, wenn die Warteschlange voll ist. Im Falle einer PriorityQueue, die unbegrenzt ist, gibt es keinen funktionalen Unterschied zwischen den beiden Methoden.
Das obige ist der detaillierte Inhalt vonWie kann ich die Sortierreihenfolge einer PriorityQueue anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!