Biasanya, objek dalam Queue diletakkan dalam susunan FIFO. iaitu, Mula-mula-Masuk-Dahulu-Keluar. Dalam kes tertentu, objek perlu diproses berdasarkan keutamaannya, dan pada masa itu, Java PriorityQueue mula beraksi. Selain itu, PriorityQueue mempunyai ciri-ciri tertentu iaitu:
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Pengisytiharan Java PriorityQueue
Java PriorityQueue boleh diisytiharkan menggunakan sintaks di bawah.
public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable
Berikut ialah pembina yang biasa digunakan dalam Java PriorityQueue:
1. PriorityQueue(): PrioritiQueue akan dibuat dengan 11 kerana kapasiti awalnya adalah secara lalai. Lebih-lebih lagi, unsur-unsur disusun berdasarkan susunan semula jadi.
2. PriorityQueue(Koleksi dilanjutkan E> c): A PriorityQueue akan dicipta dengan elemen dalam koleksi yang disebutkan.
3. PriorityQueue(int ic): PriorityQueue akan dibuat dengan ic kapasiti awal yang dinyatakan. Lebih-lebih lagi, unsur-unsur disusun berdasarkan susunan semula jadi.
4. PriorityQueue(int ic, Comparator super E> comparator): PriorityQueue akan dibuat dengan ic kapasiti awal yang dinyatakan. Selain itu, unsur-unsur disusun berdasarkan pembanding yang disebutkan.
5. PriorityQueue(PriorityQueue dilanjutkan E> c): A PriorityQueue akan menjadi dicipta dengan elemen dalam PriorityQueue yang disebut.
6. PriorityQueue(SortedSet dilanjutkan E> c): PriorityQueue akan dibuat dengan elemen dalam set diisih yang disebutkan.
Sekarang, mari kita lihat beberapa kaedah yang biasa digunakan dalam Java PriorityQueue:
1. add(E e): Elemen e akan ditambahkan pada PriorityQueue semasa memanggil kaedah ini.
2. size(): Jumlah elemen dalam koleksi akan dikembalikan.
3. clear(): Semua elemen dalam PriorityQueue akan dialih keluar.
4. pembanding(): Pembanding yang digunakan untuk mengisih baris gilir akan dikembalikan. Jika pesanan semula jadi digunakan, null akan dikembalikan.
5. mengandungi(Objeko): Jika baris gilir mengandungi elemen yang disebut o, benar akan dikembalikan.
6. iterator(): Interator yang digunakan ke atas elemen dalam baris gilir akan dikembalikan.
7. tawaran(Ee): Elemen e yang disebut akan dimasukkan dalam baris gilir.
8. intip(): Ketua Barisan Keutamaan akan diambil, bukan dialih keluar. Sekiranya tiada unsur hadir, null akan dikembalikan.
9. poll(): Ketua PriorityQueue akan diambil dan dialih keluar. Sekiranya tiada unsur hadir, null akan dikembalikan.
10. alih keluar(Objeko): Satu kejadian tunggal elemen yang disebut akan dialih keluar daripada baris gilir.
11. toArray(): Susun atur semua elemen dalam baris gilir akan dikembalikan.
12. toArray(T[] a): Suatu tatasusunan semua elemen dalam baris gilir akan dikembalikan yang mana masa jalannya adalah seperti tatasusunan yang disebut.
Diberikan di bawah adalah contoh Java PriorityQueue:
Contoh program untuk mencipta PriorityQueue.
Kod:
import java.util.Iterator; import java.util.PriorityQueue; class Main{ public static void main(String args[]){ //create a PriorityQueue PriorityQueue<String> q=new PriorityQueue<String>(); //add elements to the queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); System.out.println("Head of the queue:"+q.element()); System.out.println("Head of the queue :"+q.peek()); //Retrieve elements in queue using iterator System.out.println("Queue elements are :"); Iterator it=q.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //remove the element from queue q.remove(); //remove the head of the queue q.poll(); System.out.println("\n Queue after the removal of 2 elements :"); //Retrieve elements in queue using iterator Iterator<String> it2=q.iterator(); while(it2.hasNext()) { System.out.println(it2.next()); } } }
Output:
Kerja contoh program:
Contoh program untuk mencipta PriorityQueue menggunakan pembanding.
Code:
import java.util.Comparator; import java.util.Iterator; import java.util.PriorityQueue; class PriorityQueueExample{ public static void main(String[] args) { //Create a custom comparator. In this, length of 2 strings are getting compared Comparator<String> cmp = new Comparator<String>() { @Override public int compare(String str1, String str2) { return str1.length() - str2.length(); } }; // PriorityQueue creation with Comparator PriorityQueue<String> q = new PriorityQueue<>(cmp); // Add elements to the Queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); q.add("Sam"); q.add("Elsa"); q.add("Kukku"); q.add("Mathu"); q.add("Radha"); // Remove elements from the Queue while (!q.isEmpty()) { System.ou<em>t</em>.println(q.remove()); } } }
Output:
Working of the sample program:
Sample program to implement a PriorityQueue by making use of different methods.
Code:
import java.util.*; class Main{ public static void main(String args[]){ //create a PriorityQueue PriorityQueue<String> q=new PriorityQueue<String>(); //add elements to the queue q.add("Anna"); q.add("Annamu"); q.add("Adam"); q.add("Iza"); q.add("Thukidi"); System.out.println("Head of the queue:"+q.element()); System.out.println("Head of the queue :"+q.peek()); //Retrieve elements in queue using iterator System.out.println("Queue elements are :"); Iterator it=q.iterator(); while(it.hasNext()) { System.out.println(it.next()); } //remove the element from queue q.remove(); //remove the head of the queue q.poll(); // Check whether the element Anna is present in queue using the method Contains() boolean b = q.contains("Anna"); System.out.println("Is there any element Anna in the PriorityQueue ? " + b); //Check whether the element Iza is present in queue using the method Contains() boolean bl = q.contains("Iza"); System.out.println("Is there any element Anna in the PriorityQueue ? " + bl); } }
Output:
Working of the sample program:
Atas ialah kandungan terperinci PriorityQueue di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!