Thursday, July 4, 2024
HomeLanguagesJavaLinkedBlockingQueue iterator() method in Java

LinkedBlockingQueue iterator() method in Java

The iterator() method of LinkedBlockingQueue returns an iterator of the same elements, as this LinkedBlockingQueue, in a proper sequence. The elements returned from this method contains all the elements in order from first(head) to last(tail) of LinkedBlockingQueue. The returned iterator is weakly consistent.
Syntax: 
 

public Iterator<E> iterator()

Return Value: The method returns the iterator having same elements as present in LinkedBlockingQueue in order from first(head) to last(tail).
Below programs illustrates iterator() method of LinkedBlockingQueue class:
Program 1: Creating an Iterator from LinkedBlockingQueue which contains names of different student of a class.
 

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());
    }
}


Output: 

list of names:
John
Tom
Clark
Kat

 

Program 2: Creating an Iterator from LinkedBlockingQueue which contains list of Employees.
 

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();
    }
}


Output: 

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

 

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

Nokonwaba Nkukhwana
Experience as a skilled Java developer and proven expertise in using tools and technical developments to drive improvements throughout a entire software development life cycle. I have extensive industry and full life cycle experience in a java based environment, along with exceptional analytical, design and problem solving capabilities combined with excellent communication skills and ability to work alongside teams to define and refine new functionality. Currently working in springboot projects(microservices). Considering the fact that change is good, I am always keen to new challenges and growth to sharpen my skills.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments