Почему этот странный порядок происходит в PriorityQueue в Java? [Дубликат]
На этот вопрос уже есть ответ здесь:
Встроенный итератор для Java 's PriorityQueue не пересекает структуру данных в каком-либо конкретном порядке. Зачем? 5 ответовЯ прочитал документацию и все, что я мог найти о PriorityQueue, но все еще нене понимаю, почему вывод такой странный, я имею в виду, я могуНе можете ли вы объяснить порядок добавления, кто-нибудь может объяснить?
PriorityQueue pq = new PriorityQueue();
pq.offer("2");
System.out.println("add 2 : " + pq);
pq.offer("4");
System.out.println("add 4 : " + pq);
System.out.println(pq.peek() + " ");
pq.offer("1");
System.out.println("offer 1 : " + pq);
pq.offer("3");
System.out.println("add 3 : " + pq);
pq.remove("1");
System.out.println("remove 1 : " + pq);
Выход:
add 2 : [2]
add 4 : [2, 4]