Java PriorityQueue Comparator - Wie/Wann muss man Sortieren?
Ich bin Initialisierung einer Warteschlange wie:
strategy = new FuelPriority();
incoming = new PriorityQueue<Vehicle>(1, strategy);
Den code für mein Comparator-Klasse ist:
public class FuelPriority implements Comparator<Object> {
public int compare(Object o1, Object o2) {
Vehicle a1 = (Vehicle) o1;
Vehicle a2 = (Vheicle) o2;
return Integer.compare(a1.getFuelLevel(), a2.getFuelLevel());
}
}
Nach dem ausführen einer simulation, die Elemente sind nicht geordnet an alle - Sie sind zufällig; setze ich einen breakpoint in die Methode vergleichen meiner FuelPriority
Klasse, aber es war nicht gefordert, alle.
Bin ich hier etwas fehlt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abgesehen von der typo auf Ihren code, es funktioniert für mich.
API sagt, dass PriorityQueue iterator ist nicht garantiert, Durchlaufen die Elemente der priority queue in einer bestimmten Reihenfolge. Es ist nur garantiert, dass die Umfrage entfernen, peek, und der element-Zugriff auf das element am Kopf der Warteschlange (least-element)