Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menyesuaikan Susunan Isih bagi PriorityQueue?

Bagaimanakah Saya Boleh Menyesuaikan Susunan Isih bagi PriorityQueue?

Susan Sarandon
Lepaskan: 2024-12-13 08:40:10
asal
837 orang telah melayarinya

How Can I Customize the Sort Order of a PriorityQueue?

Menyesuaikan Susunan Isih dalam PriorityQueue

PriorityQueue ialah struktur data berguna yang mengekalkan susunan tersusun elemennya. Secara lalai, ia mengisih berdasarkan susunan semula jadi unsurnya. Untuk menyesuaikan pesanan ini, anda boleh menggunakan Comparator.

Menggunakan Comparator

Pembina PriorityQueue mempunyai kelebihan beban yang mengambil Comparator sebagai hujah. Pembanding ini mentakrifkan kriteria pengisihan untuk baris gilir. Sebagai contoh, pertimbangkan PriorityQueue yang mengisih rentetan berdasarkan panjangnya:

Comparator<String> comparator = new StringLengthComparator();
PriorityQueue<String> queue = new PriorityQueue<>(10, comparator);
Salin selepas log masuk

Pelaksanaan Pembanding

Kelas StringLengthComparator melaksanakan antara muka Comparator:

public class StringLengthComparator implements Comparator<String> {
    public int compare(String x, String y) {
        return x.length() - y.length();
    }
}
Salin selepas log masuk

Dengan membandingkan panjang rentetan, pembanding menetapkan jenis yang diingini pesanan.

Tawaran lwn. Tambah

Tawaran dan kaedah tambah kedua-duanya menambah elemen pada baris gilir. Walau bagaimanapun, tawaran kembali benar jika elemen berjaya ditambah, manakala tambah membuang pengecualian jika baris gilir penuh. Dalam kes PriorityQueue, yang tidak terhad, tiada perbezaan fungsi antara kedua-dua kaedah.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Susunan Isih bagi PriorityQueue?. 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