CodeGym /Java Blog /Acak /Queue poll() Metode di Jawa dengan Contoh
John Squirrels
Level 41
San Francisco

Queue poll() Metode di Jawa dengan Contoh

Dipublikasikan di grup Acak

Apa itu Antrian?

Seperti namanya, Queue adalah struktur data umum di Java mengikuti urutan penyisipan First In First Out (FIFO) . Anda dapat dengan mudah membayangkannya sebagai antrean di toko bahan makanan. Semakin cepat Anda masuk, semakin cepat Anda pergi. Ini berarti elemen yang ditambahkan ke antrian sebelumnya akan keluar lebih awal juga. Elemen pertama (depan) dari antrian disebut juga head .Queue poll() Metode di Jawa dengan Contoh - 2
Gambar 1.0: Antrian sederhana di Jawa

Apa metode poll() dari Queue?

Metode poll() memungkinkan Anda untuk mengambil dan menghapus elemen paling atas (kepala) dari Antrean. Dalam contoh kita, saat Anda memanggil poll() pada antrean di atas, Anda akan menerima '1' sebagai hasilnya. Dan hanya akan tersisa 4 elemen dalam antrian.Queue poll() Metode di Jawa dengan Contoh - 3
Gambar 1.1: Setelah menggunakan metode poll() pada antrian

poll() metode di Jawa

Contoh 1

Lihat contoh sederhana pemanggilan fungsi poll() pada antrian yang ditunjukkan pada gambar 1.0.

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {

	  // create a queue of die rolls 
        Queue dieRoll   = new LinkedList(); 
  
        // Add 6 integers one by one
        dieRoll.add(1); 
        dieRoll.add(2); 
        dieRoll.add(3); 
        dieRoll.add(4); 
        dieRoll.add(5); 
        dieRoll.add(6); 
  
        // print the original queue 
        System.out.println("Queue:\t" + dieRoll + "\n"); 
  
        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n"); 

        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n"); 
        
        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n");        
	}
}
Keluaran
Antrean: [1, 2, 3, 4, 5, 6] poll() dikembalikan : 1 Antrean Diperbarui! [2, 3, 4, 5, 6] poll() dikembalikan: 2 Antrean Diperbarui! [3, 4, 5, 6] poll() dikembalikan: 3 Antrean Diperbarui! [4, 5, 6]
Harap dicatat, bagaimana setelah setiap panggilan poll() ukuran antrian dikurangi 1 dan head dikembalikan.

Contoh 2

Mari kita lihat contoh lain dari hari dalam seminggu. Kami akan memanggil poll() satu per satu pada hari kerja dan melihat tampilannya.

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {
        
        Queue days   = new LinkedList(); 
        
        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n"); 
  
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n"); 

        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
        
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n");                   
	}
}
Keluaran
Hari Minggu: [Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] poll() dikembalikan: Hari Minggu Diperbarui! [Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] polling() kembali: Senin Hari Diperbarui! [Selasa, Rabu, Kamis, Jumat, Sabtu] polling() mengembalikan: Hari Selasa Diperbarui! [Rabu, Kamis, Jumat, Sabtu]

Apa perbedaan poll() dengan peek() dan remove()?

Sangat mudah bagi pemula untuk memadukan ketiga konsep yang berbeda karena tampilannya sangat mirip. Mari kita "q" menjadi antrian, lalu inilah perbedaannya:
  • q.poll() : menghapus dan mengambil kepala antrian
  • q.peek() : tidak menghapus tetapi hanya mengambil/mengembalikan kepala antrian
  • q.remove() : menghapus dan mengambil kepala antrian
Jadi tampaknya remove() dan poll() persis sama. Mereka bekerja secara identik dalam keadaan normal. Namun saat antrian kosong, remove() melempar NoSuchElementException , sementara poll mengembalikan null .

Contoh 3

Sekarang mari kita lihat sekilas beberapa contoh dari ketiga fungsi di atas.

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {
        
        Queue days   = new LinkedList(); 
        
        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n"); 
  
        // after calling peek()
        System.out.println("peek() returned: " + days.peek()); 
        System.out.println("Week Days: \t" + days + "\n"); 

        System.out.println("peek() returned: " + days.peek()); 
        System.out.println("Week Days: \t" + days + "\n"); 
        
        // after calling remove()
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
        
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
       
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 

        System.out.println("Days Updated!\t" + days + "\n"); 
 
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n");           
        
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("remove() returned: " + days.remove()); 

	}
}
Keluaran
Hari Minggu: [Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] peek() dikembalikan: Minggu Hari Minggu: [Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] peek() dikembalikan: Minggu Hari Minggu : [Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] hapus() dikembalikan: Hari Minggu Diperbarui! [Senin, Selasa, Rabu, Kamis, Jumat, Sabtu] hapus() dikembalikan: Senin Hari Diperbarui! [Selasa, Rabu, Kamis, Jumat, Sabtu] hapus() dikembalikan: Selasa hapus() dikembalikan: Rabu hapus() dikembalikan: Kamis hapus() dikembalikan: Hari Jumat Diperbarui! [Saturday] poll() dikembalikan: Hari Sabtu Diperbarui! [] poll() dikembalikan: null Pengecualian di utas "utama" java.util.NoSuchElementException di java.util.LinkedList.removeFirst(LinkedList.java:270) di java.util.LinkedList.remove(LinkedList.java:
Seperti yang Anda lihat setelah memanggil peek() hari kerja tetap sama. Dan saat kita menggunakan remove() atau poll() ukuran antrian dikurangi 1 bersamaan dengan mengembalikan kepala. Selain itu, java.util.NoSuchElementException dilontarkan saat kita memanggil remove() pada antrean kosong, sementara tidak ada pengecualian yang dilempar untuk menggunakan poll() .

Kesimpulan

Pada akhirnya, kami harap Anda sudah familiar dengan penggunaan dan cara kerja poll() metode Queues. Namun jika ada kebingungan, Anda selalu dapat kembali ke sini untuk berkonsultasi. Selamat Coding!
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION