Rumah > Java > javaTutorial > Bagaimanakah PriorityQueue Java Boleh Digunakan untuk Menguruskan Keutamaan Elemen?

Bagaimanakah PriorityQueue Java Boleh Digunakan untuk Menguruskan Keutamaan Elemen?

Patricia Arquette
Lepaskan: 2024-12-17 16:18:11
asal
382 orang telah melayarinya

How Can Java's PriorityQueue Be Used to Manage Element Priorities?

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 parameter. Dengan menyediakan pembanding yang membandingkan elemen dalam susunan pengisihan yang diingini, anda boleh menetapkan keutamaan pilihan. Sebagai contoh, untuk mengisih rentetan berdasarkan panjangnya, anda boleh melaksanakan pembanding seperti ini:

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;
    }
}
Salin selepas log masuk

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());
        }
    }
}
Salin selepas log masuk

Output:

short
medium
very long indeed
Salin selepas log masuk

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!

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