Java’s Linked list class offers a function that allows a “Queue Based” working called poll(). This function not only returns deletes the first element, but also displays them while being deleted and hence can have a lot of usage in daily life problems and competitive programming as well. There are 3 variants of poll(), all three are discussed in this article.
1. poll() : This method retrieves and removes the head (first element) of this list.
Declaration : public E poll() Return Value : This method returns the first element of this list, or null if this list is empty.
// Java code to demonstrate the working // of poll() in linked list import java.util.*;
public class LinkedListPoll {
public static void main(String[] args)
{
// Declaring a LinkedList
LinkedList list = new LinkedList();
// adding elements
list.add( "Geeks" );
list.add( 4 );
list.add( "Geeks" );
list.add( 8 );
// printing the list
System.out.println( "The initial Linked List is : " + list);
// using poll() to retrieve and remove the head
// removes and displays "Geeks"
System.out.println( "Head element of the list is : " + list.poll());
// printing the resultant list
System.out.println( "Linked List after removal using poll() : " + list);
}
} |
Output :
The initial Linked List is : [Geeks, 4, Geeks, 8] Head element of the list is : Geeks Linked List after removal using poll() : [4, Geeks, 8]
2. pollFirst() : This method retrieves and removes the first element of this list, or returns null if this list is empty.
Declaration : public E pollFirst() Return Value : This method returns the first element of this list, or null if this list is empty
// Java code to demonstrate the working // of pollFirst() in linked list import java.util.*;
public class LinkedListPollFirst {
public static void main(String[] args)
{
// Declaring a LinkedList
LinkedList list = new LinkedList();
// adding elements
list.add( "Geeks" );
list.add( 4 );
list.add( "Geeks" );
list.add( 8 );
// printing the list
System.out.println( "The initial Linked List is : " + list);
// using pollFirst() to retrieve and remove the head
// removes and displays "Geeks"
System.out.println( "Head element of the list is : " + list.pollFirst());
// printing the resultant list
System.out.println( "Linked List after removal using pollFirst() : " + list);
}
} |
Output :
The initial Linked List is : [Geeks, 4, Geeks, 8] Head element of the list is : Geeks Linked List after removal using pollFirst() : [4, Geeks, 8]
3. pollLast() : This method retrieves and removes the last element of this list, or returns null if this list is empty.
Declaration : public E pollLast() Return Value : This method returns the last element of this list, or null if this list is empty.
// Java code to demonstrate the working // of pollLast() in linked list import java.util.*;
public class LinkedListPollLast {
public static void main(String[] args)
{
// Declaring a LinkedList
LinkedList list = new LinkedList();
// adding elements
list.add( "Geeks" );
list.add( 4 );
list.add( "Geeks" );
list.add( 8 );
// printing the list
System.out.println( "The initial Linked List is : " + list);
// using pollLast() to retrieve and remove the tail
// removes and displays 8
System.out.println( "Tail element of the list is : " + list.pollLast());
// printing the resultant list
System.out.println( "Linked List after removal using pollLast() : " + list);
}
} |
Output :
The initial Linked List is : [Geeks, 4, Geeks, 8] Tail element of the list is : 8 Linked List after removal using pollLast() : [Geeks, 4, Geeks]
Practical Application : This function has potential usage in the “queue management” systems and also in “1st elimination” games that can be thought of. The former example is discussed below.
// Java code to demonstrate the practical // application of poll() in linked list import java.util.*;
public class LinkedListPollApp {
public static void main(String[] args)
{
// Declaring a LinkedList
LinkedList list = new LinkedList();
// adding queue entry of people
// in order
list.add( "Astha" );
list.add( "Shambhavi" );
list.add( "Nikhil" );
list.add( "Manjeet" );
// printing the list
System.out.println( "The initial queue is : " + list);
System.out.print( "The order of exit is : " );
while (!list.isEmpty()) {
// using poll() to display the order of exit from queue
System.out.print(list.poll() + " <-- " );
}
}
} |
Output :
The initial queue is : [Astha, Shambhavi, Nikhil, Manjeet] The order of exit is : Astha <-- Shambhavi <-- Nikhil <-- Manjeet <--