drenajeA(Colección c)
El método de drenaje (Colección c) de java.util.concurrent.LinkedTransferQueue Class es una función integrada en Java que elimina todos los elementos presentes en esta cola y los agrega a la colección proporcionada. Esta es una forma más eficiente que sondear repetidamente esta cola.
También existe la posibilidad de que se produzca un error al intentar agregar elementos a la colección c desde la cola y, debido a ese error, los elementos se distribuyen entre ambas colecciones cuando se lanza la excepción asociada. Si se intenta drenar una cola() para ponerse en cola, se lanzará IllegalArgumentException . Si la colección especificada se modifica mientras la operación está en curso, el comportamiento de esta operación no está definido. Entonces, para usar tales métodos, uno debe cuidar este tipo de situación para superar las excepciones.
Sintaxis:
public int drainTo(Collection c)
Parámetros: La función acepta un parámetro obligatorio c que es la colección a la que se van a transferir los elementos.
Valor devuelto: la función devuelve el número de elementos drenados a la colección de la cola.
Excepciones: este método arroja las siguientes excepciones:
- NullPointerException : si la colección es nula
- IllegalArgumentException : si los argumentos del método impiden que se agregue a la colección especificada
Los siguientes programas ilustran el uso del método java.util.concurrent.LinkedTransferQueue.drainTo():
Programa 1: Programa para drenar todos los elementos de la cola a la colección especificada.
// Java Program Demonstrate drainTo() // method of LinkedTransferQueue import java.util.*; import java.util.concurrent.LinkedTransferQueue; class GFG { public static void main(String[] args) { // Initializing the List List<Integer> list = new ArrayList<Integer>(); // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // Adding elements to this queue for (int i = 10; i <= 15; i++) queue.add(i); // Printing the elements of the queue System.out.println("Elements in the queue = " + queue); // drainTo() method removes all available elements // from this queue and adds them to the list queue.drainTo(list); // Printing the elements of the queue after drainTo() System.out.println("Elements left in the queue :" + queue); // Printing the elements of the list System.out.println("Elements drained in the list :" + list); } }
Elements in the queue = [10, 11, 12, 13, 14, 15] Elements left in the queue :[] Elements drained in the list :[10, 11, 12, 13, 14, 15]
Programa 2: Programa para mostrar NullPointerException en DrainTo().
// Java Program Demonstrate drainTo() // method of LinkedTransferQueue import java.util.ArrayList; import java.util.concurrent.LinkedTransferQueue; class GFG { public static void main(String[] args) throws InterruptedException { // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // add elements to queue queue.put(10); queue.put(20); queue.put(30); // create a collection with null ArrayList<Integer> add = null; // try to drain null queue to collection try { // this will throw exception // as the add list is null queue.drainTo(add); } catch (Exception e) { System.out.println("Exception: " + e); } } }
Exception: java.lang.NullPointerException
drenajeA(Colección c, int maxElements)
El método de drenajePara(Colección c, int maxElements) de java.util.concurrent.LinkedTransferQueue es una función incorporada en Java que se utiliza para transferir elementos de números fijos que se pasan como enteros en drenajePara() a la colección que también se pasa como parámetro al método. Después de transferir los elementos, LinkedTransferQueue tiene solo aquellos elementos que no se transfieren a la colección. Esta función es la misma que la función anterior con algunas limitaciones para transferir un número fijo de elementos.
Sintaxis:
public int drainTo(Collection c, int maxElements)
Parámetro: El método acepta dos parámetros:
- c – Representa la colección para transferir elementos desde LinkedTransferQueue.
- maxElements : es de tipo entero y se refiere a la cantidad máxima de elementos que se transferirán a la colección.
- NullPointerException : si la colección es nula
- IllegalArgumentException : si los argumentos del método impiden que se agregue a la colección especificada
Valor devuelto: la función devuelve el número de elementos drenados a la colección de la cola.
Excepción: este método arroja las siguientes excepciones:
Programa 1: programa para drenar como máximo el número dado de elementos disponibles de la cola a la colección especificada.
// Java Program Demonstrate drainTo() // method of LinkedTransferQueue import java.util.ArrayList; import java.util.List; import java.util.concurrent.LinkedTransferQueue; class GFG { public static void main(String[] args) { // Initializing the List List<Integer> list = new ArrayList<Integer>(); // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // Adding elements to this queue for ( int i = 1 ; i <= 10 ; i++) queue.add(i); // Printing the elements of the queue System.out.println( "Elements in the queue = " + queue); // drainTo() method removes at most // the given number of available elements // from this queue and adds them to the list. queue.drainTo(list, 5 ); // Printing the elements of the queue after drainTo() System.out.println( "Elements left in the queue :" + queue); // Printing the elements of the list System.out.println( "Elements drained in the list :" + list); } } |
Elements in the queue = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Elements left in the queue :[6, 7, 8, 9, 10] Elements drained in the list :[1, 2, 3, 4, 5]
Programa 2: Programa para mostrar NullPointerException en DrainTo().
// Java Program Demonstrate drainTo() // method of LinkedTransferQueue import java.util.ArrayList; import java.util.concurrent.LinkedTransferQueue; class GFG { public static void main(String[] args) throws InterruptedException { // Initializing the queue LinkedTransferQueue<Integer> queue = new LinkedTransferQueue<Integer>(); // add elements to queue queue.put( 10 ); queue.put( 20 ); queue.put( 30 ); // create a collection with null ArrayList<Integer> add = null ; // try to drain null queue to collection try { // this will throw exception // as the add list is null queue.drainTo(add, 2 ); } catch (Exception e) { System.out.println( "Exception: " + e); } } } |
Exception: java.lang.NullPointerException
Referencia:
Publicación traducida automáticamente
Artículo escrito por rupesh_rao y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA