PriorityQueue
Javaの の順序がわかりません。私が理解しているように、それらはヒープベースであり、挿入順序として正確な反復順序を提供できません。次に、どのような基準に基づいてpriorityQueueをソートするかを知りたいです。与えられたコード:
PriorityQueue<String> pq = new PriorityQueue<String>();
pq.offer("hepqo");
pq.offer("bro");
pq.offer("wassup");
pq.offer("okay");
pq.offer("bingo");
pq.offer("first");
pq.offer("last");
pq.offer("ssup");
System.out.println("polled "+pq.poll());
System.out.println(pq);
String str[] = pq.toArray(new String[0]);
Arrays.sort(str);
for(String str1:str){
System.out.println(str1);
}
出力を生成します:
polledbingo
[bro, hepqo, first, okay, ssup, wassup, last]
bro
first
hepqo
last
okay
ssup
wassup
配列に変換しても順序が崩れます。
これが文字列によるNATURAL ORDERINGでさえ感じられない。
優先キューの挿入順序を維持する方法はありますか?
彼らは何に基づいて分類したのですか?