このコードの実行中:
Queue q=new PriorityQueue();
q.add(1);
q.add(1);
q.add(1);
q.add(2);
System.out.println(q);
System.out.println(q.remove(1));
System.out.println(q);
出力は次のとおりです。
[1, 1, 1, 2]
true
[1, 2, 1]
誰かが出力の値 1 をシフトする理由を説明してもらえますか?
このコードの実行中:
Queue q=new PriorityQueue();
q.add(1);
q.add(1);
q.add(1);
q.add(2);
System.out.println(q);
System.out.println(q.remove(1));
System.out.println(q);
出力は次のとおりです。
[1, 1, 1, 2]
true
[1, 2, 1]
誰かが出力の値 1 をシフトする理由を説明してもらえますか?
これはSystem.out.println(q
); PriorityQueue.iterator によって返された要素を出力し、PriorityQueue API は言う
The Iterator provided in method iterator() is not guaranteed to traverse the elements of the priority queue in any particular order. If you need ordered traversal, consider using Arrays.sort(pq.toArray()).