Rumah > Java > javaTutorial > teks badan

Mengapakah Output toString PriorityQueue Saya Terganggu Walaupun Pembanding yang Betul?

Patricia Arquette
Lepaskan: 2024-10-30 14:11:26
asal
309 orang telah melayarinya

Why is My PriorityQueue's toString Output Disordered Despite a Correct Comparator?

Percanggahan Urutan PriorityQueue dalam Output toString

Isu ini berpunca daripada penggunaan kaedah toString PriorityQueue yang salah apabila pembanding tidak mengisih elemen seperti yang dijangkakan.

Ralat Pembanding

Dalam pembanding yang diberikan HuffmanComparator, kod tersebut hendaklah diubah suai seperti berikut untuk mengutamakan nod dengan frekuensi yang lebih rendah:

<code class="java">public int compare(TreeNodeHuffman p1, TreeNodeHuffman p2) {
  if (p1.frequency > p2.frequency) return -1;
  if (p1.frequency < p2.frequency) return 1;
  return 0;
}</code>
Salin selepas log masuk

toString and Polling

Walaupun komparator kini betul, kaedah PriorityQueue toString tidak menjamin elemen diisih sepenuhnya. Untuk mendapatkan elemen yang diisih, kita harus meninjau item satu demi satu menggunakan gelung sementara:

<code class="java">while (!queue.isEmpty()) {
  System.out.println(queue.poll());
}</code>
Salin selepas log masuk

Pendekatan ini memastikan struktur timbunan ditetapkan semasa setiap panggilan untuk tinjauan pendapat, menghasilkan susunan elemen yang diingini dalam outputnya.

Atas ialah kandungan terperinci Mengapakah Output toString PriorityQueue Saya Terganggu Walaupun Pembanding yang Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!