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 super E> 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:
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");
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
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!