Método LinkedBlockingQueue iterator() en Java

El método iterator () de LinkedBlockingQueue devuelve un iterador de los mismos elementos, como este LinkedBlockingQueue, en una secuencia adecuada. Los elementos devueltos por este método contienen todos los elementos en orden desde el primero (cabeza) hasta el último (cola) de LinkedBlockingQueue. El iterador devuelto es débilmente coherente.
Sintaxis: 
 

public Iterator<E> iterator()

Valor devuelto: el método devuelve el iterador que tiene los mismos elementos que los presentes en LinkedBlockingQueue en orden desde el primero (cabeza) hasta el último (cola).
Los siguientes programas ilustran el método iterator() de la clase LinkedBlockingQueue:
Programa 1: Creación de un iterador de LinkedBlockingQueue que contiene nombres de diferentes estudiantes de una clase.
 

Java

// Java Program Demonstrate iterator()
// method of LinkedBlockingQueue
 
import java.util.concurrent.LinkedBlockingQueue;
import java.util.Iterator;
 
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("John");
        linkedQueue.add("Tom");
        linkedQueue.add("Clark");
        linkedQueue.add("Kat");
 
        // create Iterator of linkedQueue using iterator() method
        Iterator<String> listOfNames = linkedQueue.iterator();
 
        // print result
        System.out.println("list of names:");
        while (listOfNames.hasNext())
            System.out.println(listOfNames.next());
    }
}
Producción: 

list of names:
John
Tom
Clark
Kat

 

Programa 2: creación de un iterador de LinkedBlockingQueue que contiene una lista de empleados.
 

Java

// Java Program Demonstrate iterator()
// method of LinkedBlockingQueue
 
import java.util.concurrent.LinkedBlockingQueue;
import java.util.Iterator;
 
public class GFG {
 
    public void collectIterator()
    {
        // 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("Sachin", "Developer", "39000");
        Employee emp2 = new Employee("Sanjeev", "Tester", "26000");
 
        // Add Employee Objects to linkedQueue
        linkedQueue.add(emp1);
        linkedQueue.add(emp2);
 
        // create Iterator of linkedQueue using iterator() method
        Iterator<Employee> listOfEmployee = linkedQueue.iterator();
 
        // print result from iterator
        System.out.println("list of Employees:");
        while (listOfEmployee.hasNext()) {
            System.out.println("*************************");
            Employee emp = listOfEmployee.next();
            System.out.println("Employee Name : " + emp.name);
            System.out.println("Employee Position : " + emp.position);
            System.out.println("Employee Salary : " + emp.salary);
        }
    }
 
    // create an Employee Object with name,
    // position and salary as an attribute
    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.collectIterator();
    }
}
Producción: 

list of Employees:
*************************
Employee Name : Sachin
Employee Position : Developer
Employee Salary : 39000
*************************
Employee Name : Sanjeev
Employee Position : Tester
Employee Salary : 26000

 

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

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 *