Java Queue接口

描述

Java 队列 poll() 检索并删除 此队列表示的列表的头。如果此队列为空,则返回 null。将修改生成的Queue对象,并删除第一个元素。

声明

以下是 java.util.Queue.poll() 方法的声明

public E poll() 

参数

返回值

此方法返回由此表示的列表的队列,如果此队列为空,则为 null

异常

示例 1

以下示例显示了 Java 队列 poll() 方法与整数的用法。我们创建一个 Integers 的 LinkedList 对象,添加一些元素,打印它,然后使用 poll() 方法获取第一个元素。当队列被修改时,它会被打印以检查第一个元素是否存在。

package com.yxjc123;

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
   public static void main(String[] args) {
      
      //创建一个空队列
      Queue<Integer> queue = new LinkedList<>();

      //使用add()方法向队列添加元素
      queue.add(25);
      queue.add(30);
      queue.add(20);
      queue.add(18);        

      //让我们打印队列中所有可用的元素
      System.out.println("Queue = " + queue);

      //从队列中删除后它将检索第一个元素
      System.out.println("Retrieved Element is = " + queue.poll());
	  
      //让我们再次打印队列中所有可用的元素
      System.out.println("Queue = " + queue);
   }
} 

输出

让我们编译并运行上面的程序,这将产生以下结果 -

Queue = [25, 30, 20, 18]
Retrieved Element is = 25
Queue = [30, 20, 18] 

示例 2

以下示例显示 Java 队列 poll() 方法与字符串的用法。我们正在创建一个 String 的 LinkedList,添加一些元素,打印它,然后使用 poll() 方法获取第一个元素。当队列被修改时,它会被打印以检查第一个元素是否存在。

package com.yxjc123;

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
   public static void main(String[] args) {
      
      //创建一个空队列
      Queue<String> queue = new LinkedList<>();

      //使用add()方法向队列添加元素
      queue.add("A");
      queue.add("B");
      queue.add("C");
      queue.add("D");        

      //让我们打印队列中所有可用的元素
      System.out.println("Queue = " + queue);

      //从队列中删除后它将检索第一个元素
      System.out.println("Retrieved Element is = " + queue.poll());
	  
      //让我们再次打印队列中所有可用的元素
      System.out.println("Queue = " + queue);
   }
} 

输出

让我们编译并运行上面的程序,这将产生以下结果 -

Queue = [A, B, C, D]
Retrieved Element is = A
Queue = [B, C, D] 

示例 3

以下示例显示 Java 队列 poll() 方法与 Student 对象的用法。我们正在创建一个 Student 的 LinkedList,添加一些元素,打印它,然后使用 poll() 方法获取第一个元素。当队列被修改时,它会被打印以检查第一个元素是否存在。

package com.yxjc123;

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
   public static void main(String[] args) {
      
      //创建一个空队列
      Queue<Student> queue = new LinkedList<>();

      //使用add()方法向队列添加元素
      queue.add(new Student(1, "Julie"));
      queue.add(new Student(2, "Robert"));
      queue.add(new Student(3, "Adam"));       

      //让我们打印队列中所有可用的元素
      System.out.println("Queue = " + queue);

      //从队列中删除后它将检索第一个元素
      System.out.println("Retrieved Element is = " + queue.poll());
	  
      //让我们再次打印队列中所有可用的元素
      System.out.println("Queue = " + queue);
   }
}
class Student {
   int rollNo;
   String name;

   Student(int rollNo, String name){
      this.rollNo = rollNo;
      this.name = name;
   }

   @Override
   public String toString() {
      return "[ " + this.rollNo + ", " + this.name + " ]";
   }
   
   @Override
   public boolean equals(Object obj) {
      Student s = (Student)obj;
      return this.rollNo == s.rollNo && this.name.equalsIgnoreCase(s.name);
   }
} 

输出

让我们编译并运行上面的程序,这将产生以下结果 -

Queue = [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ]]
Retrieved Element is = [ 1, Julie ]
Queue = [[ 2, Robert ], [ 3, Adam ]]