Java: Priority Queue

У меня есть 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]

7
задан Fred Foo 28 October 2011 в 09:14
поделиться

1 ответ

опрос () и удаляет (), даст отсортированное распоряжение не, посмотрели () согласно 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
0
ответ дан 6 December 2019 в 15:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: