Mengutamakan Elemen dengan PriorityQueue dalam Java
Menguruskan keutamaan dalam koleksi boleh dicapai dengan berkesan menggunakan PriorityQueue di Java. Struktur data ini mengekalkan baris gilir di mana elemen disusun berdasarkan pembanding yang boleh disesuaikan, memastikan elemen keutamaan tertinggi diambil dahulu.
Menyesuaikan Susunan Isih
Untuk mengisih PriorityQueue mengikut keperluan khusus anda, gunakan kelebihan beban pembina yang menerima Comparator
import java.util.Comparator; public class StringLengthComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { if (s1.length() < s2.length()) { return -1; } if (s1.length() > s2.length()) { return 1; } return 0; } }
tawaran lwn. tambah Kaedah
Sementara kedua-duanya menawarkan dan menambah kaedah menambah elemen pada PriorityQueue, ia menawarkan perbezaan yang halus. tawaran pulangan palsu jika elemen tidak boleh ditambah kerana kekangan kapasiti manakala add membuang IllegalStateException dalam senario ini. Walau bagaimanapun, dalam PriorityQueue, yang tidak terhad, kedua-dua kaedah berkelakuan sama, menambahkan elemen pada baris gilir.
Menggambarkan penggunaan PriorityQueue dengan pembanding tersuai:
import java.util.PriorityQueue; public class PQDemo { public static void main(String[] args) { PriorityQueue<String> queue = new PriorityQueue<>(10, new StringLengthComparator()); queue.add("short"); queue.add("very long indeed"); queue.add("medium"); while (!queue.isEmpty()) { System.out.println(queue.remove()); } } }
Output:
short medium very long indeed
Dalam contoh ini, baris gilir keutamaan mengisih rentetan mengikut panjang, dapatkan semula rentetan terpendek dahulu.
Atas ialah kandungan terperinci Bagaimanakah PriorityQueue Java Boleh Digunakan untuk Menguruskan Keutamaan Elemen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!