Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Melaksanakan Perintah Isih Tersuai dalam PriorityQueue Java?

Bagaimanakah Saya Boleh Melaksanakan Perintah Isih Tersuai dalam PriorityQueue Java?

Barbara Streisand
Lepaskan: 2024-12-30 18:28:13
asal
268 orang telah melayarinya

How Can I Implement a Custom Sort Order in Java's PriorityQueue?

Tertib Isih Tersuai dalam PriorityQueue Java

Pengenalan

PriorityQueue, struktur data asas di Java, menyediakan cara yang cekap untuk menguruskan elemen yang disusun mengikut keutamaan mereka. Walau bagaimanapun, mekanisme pengisihan lalai mungkin tidak sentiasa sejajar dengan susunan isihan yang diingini.

Urutan Isih Tersuai

Untuk menentukan susunan isihan tersuai bagi PriorityQueue, gunakan pembina beban berlebihan yang memerlukan Pembanding pembanding. Hantarkan pembanding yang membandingkan elemen berdasarkan susunan isihan yang diingini.

Pelaksanaan Pembanding

Pembanding harus melaksanakan kaedah perbandingan untuk menentukan logik perbandingan. Kaedah ini mengambil dua elemen dan mengembalikan integer yang menunjukkan susunan relatif:

  • -1 jika elemen pertama harus didahulukan sebelum yang kedua
  • 0 jika elemen adalah sama
  • 1 jika elemen pertama harus datang selepas kedua

Contoh

Pertimbangkan contoh di mana kita ingin mengisih PriorityQueue rentetan mengikut panjang rentetan dalam tertib menaik. Berikut ialah contoh pembanding dan penggunaan PriorityQueue:

import java.util.*;

class StringLengthComparator implements Comparator<String> {
    @Override
    public int compare(String x, String y) {
        return x.length() - y.length(); // Sort by ascending length
    }
}

...
Comparator<String> comparator = new StringLengthComparator();
PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
queue.add("short");
queue.add("very long indeed");
queue.add("medium");
Salin selepas log masuk

tambah vs. tawaran

Kedua-dua tambah dan tawaran ialah pelaksanaan kaedah dalam antara muka PriorityQueue. Walaupun mereka berpotensi berkelakuan berbeza secara umum, tiada perbezaan praktikal dalam konteks PriorityQueue, kerana ia tidak terhad.

Output

PrioritasQueue akan menyediakan elemen dalam susunan diisih yang ditentukan. Dalam contoh di atas, outputnya ialah:

short
medium
very long indeed
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Perintah Isih Tersuai dalam PriorityQueue Java?. 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