Почему этот странный порядок происходит в 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]            

Ответы на вопрос(3)

Ваш ответ на вопрос