1. Método de encuesta()
El método poll() de PriorityBlockingQueue recupera y elimina elementos del encabezado de esta PriorityBlockingQueue. Este método devuelve el elemento que elimina de PriorityBlockingQueue, pero cuando la cola está vacía, el método devolverá un valor nulo.
Sintaxis:
public E poll()
Devoluciones: este método devuelve el elemento del encabezado de esta PriorityBlockingQueue, o nulo si esta cola está vacía.
Los siguientes programas ilustran el método poll() de PriorityBlockingQueue:
Ejemplo 1: programa para demostrar el método poll() en PriorityBlockingQueue para eliminar un elemento de una lista de números.
// Java Program Demonstrate poll() // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; public class GFG { public static void main(String[] args) { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5; // create object of PriorityBlockingQueue PriorityBlockingQueue<Integer> PrioQueue = new PriorityBlockingQueue<Integer>(capacityOfQueue); // Add numbers to PriorityBlockingQueue PrioQueue.offer(35658786); PrioQueue.offer(5278367); PrioQueue.offer(74381793); PrioQueue.offer(87625142); // remove numbers from head using poll() // and print removed number int removedItem = PrioQueue.poll(); // print details System.out.println("Removed Element: " + removedItem); System.out.println("Now Queue Contains:"); System.out.println(PrioQueue.toString()); } }
Removed Element: 5278367 Now Queue Contains: [35658786, 87625142, 74381793]
Ejemplo 2: Programa para demostrar el método poll() para eliminar String de una lista de valores de String y devolver un valor nulo si la lista está vacía.
// Java Program Demonstrate poll() // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; import java.util.*; public class GFG { public static void main(String[] args) { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5; // create object of PriorityBlockingQueue which contains // name of students PriorityBlockingQueue<String> names = new PriorityBlockingQueue<String>(capacityOfQueue); // Add names of students of girls college names.offer("Joyita"); names.offer("Priyanka"); // remove two names from list of names // and print removed name String removedName1 = names.poll(); String removedName2 = names.poll(); // print details System.out.println("Removed Name 1: " + removedName1); System.out.println("Removed Name 2: " + removedName2); System.out.println("Now Queue Contains:"); System.out.println(names.toString()); // try to remove from empty PriorityBlockingQueue String removedName3 = names.poll(); System.out.println("Removed Name 3: " + removedName3); } }
Removed Name 1: Joyita Removed Name 2: Priyanka Now Queue Contains: [] Removed Name 3: null
2. Método de encuesta (tiempo de espera prolongado, unidad de unidad de tiempo)
El método de encuesta (tiempo de espera prolongado, unidad de unidad de tiempo) de PriorityBlockingQueue recupera y elimina el elemento del encabezado de esta PriorityBlockingQueue. Si PriorityBlockingQueue está vacío, lo hará, espere hasta un tiempo específico para que un elemento esté disponible. El tiempo de espera y la unidad de tiempo son dados como parámetros al método.
Sintaxis:
public E poll(long timeout, TimeUnit unit) throws InterruptedException
Parámetro:
Este método acepta dos parámetros:
- tiempo de espera (largo) : cuánto tiempo esperar antes de darse por vencido, en unidades de unidad.
- unit(TimeUnit) : una TimeUnit que determina cómo interpretar el parámetro de tiempo de espera.
Devoluciones: este método devuelve el elemento del encabezado de esta PriorityBlockingQueue, o nulo si transcurre el tiempo de espera especificado antes de que un elemento esté disponible.
Excepción: este método arroja solo una excepción interrumpida : si se interrumpe mientras espera
Los siguientes programas ilustran el método de sondeo (tiempo de espera prolongado, unidad de unidad de tiempo) de PriorityBlockingQueue:
Ejemplo 1: programa para demostrar el método de sondeo (tiempo de espera prolongado, unidad de unidad de tiempo) en PriorityBlockingQueue para eliminar un elemento de una lista de números.
// Java Program Demonstrate poll(long timeout, TimeUnit unit) // method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue; import java.util.concurrent.TimeUnit; public class GFG { public static void main(String[] args) throws InterruptedException { // define capacity of PriorityBlockingQueue int capacityOfQueue = 5; // create object of PriorityBlockingQueue PriorityBlockingQueue<Integer> PrioQueue = new PriorityBlockingQueue<Integer>(capacityOfQueue); // Add numbers to PriorityBlockingQueue PrioQueue.offer(35658786); PrioQueue.offer(5278367); // Try to poll elements from PriorityBlockingQueue System.out.println("Removed Number: " + PrioQueue.poll(10, TimeUnit.SECONDS)); System.out.println("List Contains" + PrioQueue); System.out.println("Removed Number: " + PrioQueue.poll(10, TimeUnit.SECONDS)); System.out.println("List Contains" + PrioQueue); System.out.println("Removed Number: " + PrioQueue.poll(10, TimeUnit.SECONDS)); System.out.println("List Contains" + PrioQueue); } }
Removed Number: 5278367 List Contains[35658786] Removed Number: 35658786 List Contains[] Removed Number: null List Contains[]
Referencia:
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#poll–
- https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#poll-long-java.util.concurrent.TimeUnit-
Publicación traducida automáticamente
Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA