LinkedBlockingQueue peek() method in Java

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



filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


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–



My Personal Notes arrow_drop_up

I am a Developer I love to code and bring my ideas alive

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.