Breve storia, sto implementando un grafico e ora sto lavorando su Kruskal, ho bisogno di una coda di priorità. La mia definizione di una coda di priorità è che l'elemento con la chiave più piccola sarebbe il primo? È sbagliato? Perché quando inserisco i bordi ponderati (o numeri) nella coda non finiscono ordinati.Come si suppone che la coda di priorità Java funzioni?
PriorityQueue<Integer> tja = new PriorityQueue<Integer>();
tja.add(55);
tja.add(99);
tja.add(1);
tja.add(102);
tja.add(54);
tja.add(51);
System.out.println(tja);
Questo dovrebbe stamparlo; [1, 54, 51, 102, 99, 55]. Questo non è ordinato come voglio che siano! E sì ho creato un comperatore che entra nella coda di priorità che estrae il numero dall'oggetto edge e lo confronta in base a quell'int. Quindi dovrebbe funzionare o ho semplicemente frainteso l'intero concetto di come funziona questa struttura dati?
per ottenere il layout ordinato è necessario utilizzare 'while (! Tja.isEmpty()) { System.out.println (tja.poll()); } ' – serhii