Kolejność wyświetlana z kolejki Queue

0

Do mojej kolejki Queue w kodzie użyłem implementacji LinkedList, czyli co pierwsze wchodzi, to pierwsze wychodzi. Więc funkcja .poll() naturalnie wyciąga dane od początku kolejki. Efekt jest oczywisty:

ID: 1

ID: 2

ID: 3

ID: 4

i natknąłem się na inną implementację PriorityQueue, która powinna działać w taki sposób, że to co ostatnie wchodzi, to pierwsze wychodzi, a po wykonaniu programu mam taki sam efekt jak z LinkedList. Wydaje mi się, że ta implementacja powinna wyświetlić

ID: 4

ID: 3

ID: 2

ID: 1

a tak nie jest. Może źle to rozumiem?

0

PriorityQueue, która powinna działać w taki sposób, że to co ostatnie wchodzi, to pierwsze wychodzi

Kolejka priorytetowa tak nie działa.

0

Nie, to co opisujesz to nie kolejka, lecz stos - LIFO:
https://en.wikipedia.org/wiki/Stack_(abstract_data_type)
https://en.wikipedia.org/wiki/Queue_(abstract_data_type)

Czyli możesz do tego użyć klasy Stack lub Deque:
https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html
https://docs.oracle.com/javase/7/docs/api/java/util/Deque.html (intefejs)

PriorityQueue jest dobrze opisane tu:
https://docs.oracle.com/javase/7/docs/api/java/util/PriorityQueue.html
Porządkuje elementy według wyniku porównywania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1