Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menyesuaikan Susunan Isih bagi 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);
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(); } }
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!