PriorityBlockingQueue método de oferta() en Java

1. método de oferta (E e)

El método offer(E e) de PriorityBlockingQueue inserta el elemento e , pasado como parámetro, en esta PriorityBlockingQueue. Este método inserta el elemento en esta PriorityBlockingQueue. Dado que PriorityBlockingQueue no tiene límites, este método nunca se bloqueará. Sintaxis:

public boolean offer(E e)

Parámetro: Este método acepta un parámetro e que representa el elemento e que queremos insertar en esta PriorityBlockingQueue. Devoluciones: este método devuelve una respuesta booleana verdadera si la inserción se realiza correctamente. Excepción: este método arroja las siguientes excepciones.

  • ClassCastException : si el elemento especificado no se puede comparar con los elementos que se encuentran actualmente en la cola de prioridad según el orden de PriorityBlockingQueue.
  • NullPointerException : si el elemento es nulo

Los siguientes programas ilustran el método de oferta() de PriorityBlockingQueue: Ejemplo 1: programa para demostrar el método de oferta() en PriorityBlockingQueue para agregar una lista de números. 

Java

// Java Program Demonstrate offer()
// 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 using offer()
        PrioQueue.offer(35658786);
        PrioQueue.offer(5278367);
        PrioQueue.offer(74381793);
        PrioQueue.offer(87625142);
 
        // print elements of PriorityBlockingQueue
        System.out.println("Queue Contains:");
        System.out.println(PrioQueue.toString());
    }
}
Producción:

Queue Contains:
[5278367, 35658786, 74381793, 87625142]

Ejemplo 2: programa para demostrar la excepción lanzada por el método de oferta() cuando intentamos agregar un valor nulo a PriorityBlockingQueue. 

Java

// Java Program Demonstrate offer()
// 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");
 
        // try to insert null value in offer method
        try {
            names.offer(null);
        }
        catch (Exception e) {
            // print error details
            System.out.println("Exception Thrown: " + e);
        }
    }
}
Producción:

Exception Thrown: java.lang.NullPointerException

2. Método de oferta (E e, tiempo de espera prolongado, unidad de unidad de tiempo)

El método offer(E e, long timeout, TimeUnit unit) de PriorityBlockingQueue inserta el elemento e , pasado como parámetro, en esta PriorityBlockingQueue. Este método inserta el elemento en esta PriorityBlockingQueue. Dado que PriorityBlockingQueue no tiene límites, este método nunca se bloqueará y los parámetros timeout y timeUnit se ignorarán. Este método se hereda de la superclase de priorityBlockingQueue, que es la clase BlockingQueue. es lógicamente igual que el método de oferta (E e). Sintaxis:

offer(E e, long timeout, TimeUnit unit)

Parámetro: este método acepta tres parámetros

  1. e : el elemento que se insertará en PriorityBlockingQueue.
  2. timeout : este parámetro se ignora porque la cola nunca bloquea la inserción de nuevos elementos.
  3. unidad : este parámetro también se ignora porque la cola nunca bloquea la inserción de nuevos elementos.

Devoluciones: este método devuelve una respuesta booleana verdadera si la inserción se realiza correctamente. Excepción: este método arroja las siguientes excepciones.

  • ClassCastException : si el elemento especificado no se puede comparar con los elementos que se encuentran actualmente en la cola de prioridad según el orden de PriorityBlockingQueue.
  • NullPointerException : si el elemento es nulo

Los siguientes programas ilustran el método de oferta (E e, tiempo de espera prolongado, unidad de unidad de tiempo) de PriorityBlockingQueue: Ejemplo 1: programa para demostrar el método de oferta (E e, tiempo de espera prolongado, unidad de unidad de tiempo) en PriorityBlockingQueue para agregar una lista de números. 

Java

// Java Program Demonstrate offer()
// method of PriorityBlockingQueue
 
import java.util.concurrent.PriorityBlockingQueue;
import java.util.concurrent.TimeUnit;
 
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 3 elements to PriorityBlockingQueue using
        // offer(Element e, long timeout, TimeUnit unit)
        System.out.println("adding 1234 "
                           + PrioQueue.offer(1234,
                                             5, TimeUnit.SECONDS));
        System.out.println("adding 2345 "
                           + PrioQueue.offer(2345,
                                             5, TimeUnit.SECONDS));
        System.out.println("adding 3456 "
                           + PrioQueue.offer(3456,
                                             5, TimeUnit.SECONDS));
 
        // print elements of PriorityBlockingQueue
        System.out.println("Queue Contains:");
        System.out.println(PrioQueue.toString());
    }
}
Producción:

adding 1234 true
adding 2345 true
adding 3456 true
Queue Contains:
[1234, 2345, 3456]

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 *