Rumah  >  Artikel  >  Java  >  PriorityQueue di Jawa

PriorityQueue di Jawa

PHPz
PHPzasal
2024-08-30 16:04:30596semak imbas

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

  • Ia adalah baris gilir tanpa sempadan.
  • Secara lalai, susunan unsur adalah dalam susunan semula jadi.
  • Nilai null tidak dibenarkan.
  • Objek yang tidak setanding tidak boleh digunakan untuk membuat PriorityQueue.

Pengisytiharan Java PriorityQueue

Java PriorityQueue boleh diisytiharkan menggunakan sintaks di bawah.

public class PriorityQueue<E> extends AbstractQueue<E> implements Serializable

Pembina Java PriorityQueue

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(KoleksiE> 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 comparator): PriorityQueue akan dibuat dengan ic kapasiti awal yang dinyatakan. Selain itu, unsur-unsur disusun berdasarkan pembanding yang disebutkan.

5. PriorityQueue(PriorityQueueE> c): A PriorityQueue akan menjadi dicipta dengan elemen dalam PriorityQueue yang disebut.

6. PriorityQueue(SortedSetE> c): PriorityQueue akan dibuat dengan elemen dalam set diisih yang disebutkan.

Kaedah

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.

Contoh Java PriorityQueue

Diberikan di bawah adalah contoh Java PriorityQueue:

Contoh #1

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:

PriorityQueue di Jawa

Kerja contoh program:

  • Buat PriorityQueue q.
  • Tambahkan elemen pada Baris Gilir.
  • Cetak kepala barisan.
  • Cetak semua elemen dalam Baris Gilir menggunakan iterator.
  • Alih keluar dua elemen.
  • Cetak semua elemen dalam Baris Gilir selepas penyingkiran dua elemen.

Contoh #2

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:

PriorityQueue di Jawa

Working of the sample program:

  • Create a custom comparator where the elements in the Queue are compared based on the length.
  • Create a PriorityQueue q.
  • Add elements to the Queue.
  • Remove the elements from the queue based on the length of the strings.
  • Print the elements in the queue in the order of removal.

Example #3

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:

PriorityQueue di Jawa

Working of the sample program:

  • Create a PriorityQueue q.
  • Add elements and Print the head of the queue.
  • Print all the elements in the Queue using iterator.
  • Remove two elements using the methods remove() and poll().
  • Check whether the two elements Anna and Iza are available in Queue using the method Contains().

Atas ialah kandungan terperinci PriorityQueue di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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 sebelumnya:Antara Muka Barisan JavaArtikel seterusnya:Antara Muka Barisan Java