Método PriorityBlockingQueue poll() en Java

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());
    }
}
Producción:

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);
    }
}
Producción:

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:

  1. tiempo de espera (largo) : cuánto tiempo esperar antes de darse por vencido, en unidades de unidad.
  2. 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);
    }
}
Producción:

Removed Number: 5278367
List Contains[35658786]
Removed Number: 35658786
List Contains[]
Removed Number: null
List Contains[]

Referencia:

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *