Java Queue接口

描述

如果可以在不违反容量限制的情况下立即插入指定的元素,Java Queue offer(E E)方法会将指定的元素插入到该队列中。当使用容量受限的队列时,此方法通常比add(E)更可取,后者可能仅通过抛出异常而无法插入元素。

声明

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

public boolean offer(E e) 

参数

e - 要添加的元素

返回值

如果元素已添加到此队列,则此方法返回true,否则返回false

异常

ClassCastException - 如果指定元素的类阻止将其添加到此队列

NullPointerException - 如果指定元素为 null 并且此队列不允许 null 元素

IllegalArgumentException - 如果此元素的某些属性阻止将其添加到此队列

示例 1

以下示例展示了 Java Queue Offer(E) 方法与整数的用法。我们使用 add() 方法向列表添加一些元素,然后使用 Offer() 方法,最后添加两个元素。最后我们打印 Queue 对象来查看最终结果。

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(1);
      queue.add(2);
      queue.add(3);
      queue.add(4);        
      queue.add(5);
      queue.add(6);

      // 值将以相同的顺序打印
      queue.offer(7);
      queue.offer(8);

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

输出

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

Queue = [1, 2, 3, 4, 5, 6, 7, 8] 

示例 2

以下示例显示 Java 队列 Offer(E) 方法与字符串的用法。我们使用 add() 方法向列表添加一些元素,然后使用 Offer() 方法,最后添加两个元素。最后我们打印 Queue 对象来查看最终结果。

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");        
      queue.add("E");
      queue.add("F");

      // 值将以相同的顺序打印
      queue.offer("G");
      queue.offer("H");

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

输出

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

Queue = [A, B, C, D, E, F, G, H] 

示例 3

以下示例展示了 Java Queue Offer(E) 方法与 Student 对象的用法。我们使用 add() 方法向列表添加一些元素,然后使用 Offer() 方法,最后添加两个元素。最后我们打印 Queue 对象来查看最终结果。

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"));

      //使用offer()方法在队列末尾添加元素
      queue.offer(new Student(4, "Rohan"));
      queue.offer(new Student(5, "Sohan"));

      //让我们打印队列中所有可用的元素
      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 + " ]";
   }
} 

输出

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

Queue = [[ 1, Julie ], [ 2, Robert ], [ 3, Adam ], [ 4, Rohan ], [ 5, Sohan ]]