Java 8 | Método LinkedBlockingQueue spliterator() con ejemplos

El método spliterator() de LinkedBlockingQueue devuelve un Spliterator de los mismos elementos que LinkedBlockingQueue. El iterador devuelto es débilmente coherente. Se puede usar con Streams en Java 8. También puede atravesar elementos individualmente y también en masa.
Sintaxis: 
 

public Spliterator spliterator()

Valor de retorno: este método devuelve un Spliterator sobre los elementos en LinkedBlockingQueue.
Los siguientes programas ilustran el método spliterator() de la clase LinkedBlockingQueue:
Programa 1: Creación de un Spliterator a partir de LinkedBlockingQueue que contiene nombres de diferentes estudiantes de una clase
 

Java

// Java Program Demonstrate spliterator()
// method of LinkedBlockingQueue
 
import java.util.concurrent.LinkedBlockingQueue;
import java.util.*;
public class GFG {
 
    public static void main(String[] args)
    {
        // define capacity of LinkedBlockingQueue
        int capacityOfQueue = 7;
 
        // create object of LinkedBlockingQueue
        LinkedBlockingQueue<String> linkedQueue
            = new LinkedBlockingQueue<String>(capacityOfQueue);
 
        // Add element to LinkedBlockingQueue
        linkedQueue.add("Aman");
        linkedQueue.add("Amar");
        linkedQueue.add("Sanjeet");
        linkedQueue.add("Rabi");
 
        // create Spliterator of linkedQueue
        // using spliterator() method
        Spliterator<String> listOfNames = linkedQueue.spliterator();
 
        // print result from Spliterator
        System.out.println("list of names:");
 
        // forEachRemaining method  of Spliterator
        listOfNames.forEachRemaining((n) -> System.out.println(n));
    }
}
Producción: 

list of names:
Aman
Amar
Sanjeet
Rabi

 

Programa 2: Creación de un Spliterator desde LinkedBlockingQueue que contiene una lista de objetos Empleados.
 

Java

// Java Program Demonstrate spliterator()
// method of LinkedBlockingQueue
 
import java.util.concurrent.LinkedBlockingQueue;
import java.util.*;
public class GFG {
 
    public void collectSplitator()
    {
        // define capacity of LinkedBlockingQueue
        int capacityOfQueue = 7;
 
        // create object of LinkedBlockingQueue
        LinkedBlockingQueue<Employee> linkedQueue
            = new LinkedBlockingQueue<Employee>(capacityOfQueue);
 
        // Add element to LinkedBlockingQueue
        Employee emp1 = new Employee("Aman", "Blogger", "100000");
        Employee emp2 = new Employee("Amar", "Manager", "99000");
 
        // Add Employee Objects to linkedQueue
        linkedQueue.add(emp1);
        linkedQueue.add(emp2);
 
        // create Spliterator of linkedQueue
        // using spliterator() method
        Spliterator<Employee> listOfEmp = linkedQueue.spliterator();
 
        // print result from Spliterator
        System.out.println("No of Employees = "
                           + linkedQueue.size());
 
        // forEachRemaining method  of Spliterator
        listOfEmp.forEachRemaining((n) -> print(n));
    }
 
    // print employee details
    public void print(Employee e)
    {
        System.out.println("-----------------------------");
        System.out.println("Employee Name : " + e.name);
        System.out.println("Employee Position : " + e.position);
        System.out.println("Employee Salary : " + e.salary);
    }
 
    // create an Employee Object with name,
    // position and salary as attributes
    public class Employee {
 
        public String name;
        public String position;
        public String salary;
 
        Employee(String name, String position, String salary)
        {
            this.name = name;
            this.position = position;
            this.salary = salary;
        }
 
        @Override
        public String toString()
        {
            return "Employee [name=" + name + ", position="
                + position + ", salary=" + salary + "]";
        }
    }
 
    // Main Method
    public static void main(String[] args)
    {
        GFG gfg = new GFG();
        gfg.collectSplitator();
    }
}
Producción: 

No of Employees = 2
-----------------------------
Employee Name : Aman
Employee Position : Blogger
Employee Salary : 100000
-----------------------------
Employee Name : Amar
Employee Position : Manager
Employee Salary : 99000

 

Referencia: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/LinkedBlockingQueue.html#spliterator–
 

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 *