У меня есть Java-программа, которая выглядит примерно так:
открытый класс PriorityQueueExample {
public static void main(String[] args) {
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
pq.add(10);
pq.add(1);
pq.add(9);
pq.add(2);
pq.add(8);
pq.add(3);
pq.add(7);
pq.add(4);
pq.add(6);
pq.add(5);
System.out.println(pq);
}
}
Мой вопрос: почему очередь приоритетов не сортирует их. В соответствии со спецификациями java он реализует сопоставимый и поддерживает порядок сортировки (естественная сортировка)
Мои результаты программы следующие: [1, 2, 3, 4, 5, 9, 7, 10, 6, 8]
опрос () и удаляет (), даст отсортированное распоряжение не, посмотрели () согласно java8.
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
pq.add(10);
pq.add(1);
pq.add(9);
pq.add(2);
pq.add(8);
pq.add(3);
pq.add(7);
pq.add(4);
pq.add(6);
pq.add(5);
// Remove items from the Priority Queue (DEQUEUE)
while (!pq.isEmpty()) {
// System.out.println(pq.remove());
System.out.println(pq.poll());
}
Output for poll() & remove():
1
2
3
4
5
6
7
8
9
10
output for peek():
1
1
1
1
1
1
1
1
1
1