Open In App

LinkedBlockingQueue peek() method in Java

Last Updated : 26 Nov, 2018
Improve
Improve
Like Article
Like
Save
Share
Report

The peek() method of LinkedBlockingQueue returns the head of the LinkedBlockingQueue. It retrieves the value of the head of LinkedBlockingQueue but does not remove it. If the LinkedBlockingQueue is empty then this method returns null.

Syntax:

public E peek()

Return Value: This method returns the head of the LinkedBlockingQueue.

Below programs illustrates peek() method of LinkedBlockingQueue class:

Program 1: Returning the head of the LinkedBlockingQueue using peek() method where LinkedBlockingQueue of capacity 7 contains list of names




// Java Program Demonstrate peek()
// method of LinkedBlockingQueue
  
import java.util.concurrent.LinkedBlockingQueue;
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");
  
        // find head of linkedQueue using peek() method
        String head = linkedQueue.peek();
  
        // print result
        System.out.println("Queue is " + linkedQueue);
  
        // print head of queue
        System.out.println("Head of Queue is " + head);
  
        // removing one element
        linkedQueue.remove();
  
        // again get head of queue
        head = linkedQueue.peek();
  
        // print result
        System.out.println("\nRemoving one element from Queue\n");
        System.out.println("Queue is " + linkedQueue);
  
        // print head of queue
        System.out.println("Head of Queue is " + head);
    }
}


Output:

Queue is [John, Tom, Clark, Kat]
Head of Queue is John

Removing one element from Queue

Queue is [Tom, Clark, Kat]
Head of Queue is Tom

Program 2: Finding head of LinkedBlockingQueue which contains list of Employees




// Java Program Demonstrate peek()
// method of LinkedBlockingQueue
  
import java.util.concurrent.LinkedBlockingQueue;
public class GFG {
  
    public void findPeek()
    {
        // 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("Ravi", "Tester", "39000");
        Employee emp2 = new Employee("Sanjeet", "Manager", "98000");
  
        // Add Employee Objects to linkedQueue
        linkedQueue.add(emp1);
        linkedQueue.add(emp2);
  
        // print head then remove element
        // and follow same process again
        // until the queue becomes empty
  
        while (linkedQueue.size() != 0) {
  
            // find head of linkedQueue using peek() method
            Employee head = linkedQueue.peek();
  
            // print results
            System.out.println("Head of list");
            System.out.println("Employee Name : " + head.name);
            System.out.println("Employee Position : " + head.position);
            System.out.println("Employee Salary : " + head.salary);
  
            linkedQueue.remove();
            if (linkedQueue.size() != 0)
                System.out.println("\nRemoving one element from Queue\n");
        }
    }
  
    // create an Employee Object with
    // 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.findPeek();
    }
}


Output:

Head of list
Employee Name : Ravi
Employee Position : Tester
Employee Salary : 39000

Removing one element from Queue

Head of list
Employee Name : Sanjeet
Employee Position : Manager
Employee Salary : 98000

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



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads