📜  Java中的 ArrayBlockingQueue put() 方法

📅  最后修改于: 2022-05-13 01:55:22.179000             🧑  作者: Mango

Java中的 ArrayBlockingQueue put() 方法

ArrayBlockingQueue是有界的阻塞队列,它在内部存储由数组支持的元素。

  • ArrayBlockingQueue类是Java集合框架的成员。
  • 有界意味着它将具有固定大小,您不能存储数量超过队列容量的元素。
  • 队列还遵循 FIFO(先进先出)规则来存储和删除队列中的元素。
  • 如果你试图将一个元素放入一个满队列或从一个空队列中取出一个元素,那么队列会阻止你。

如果队列未满, put (E e)方法会将作为参数传递给方法的元素插入到此队列(ArrayBlockingQueue)的尾部。如果队列已满,则它将等待空间可用。
句法:

public void put(E e)  throws InterruptedException

范围:
e - 要添加到队列中的元素。
投掷
InterruptedException – 如果在等待时被中断。
NullPointerException – 如果指定元素为空。

下面的程序说明了 ArrayBlockingQueue 的 put(E e) 方法。

示例 1

// Java Program to demonstrate put(E e)
// method of ArrayBlockingQueue.
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        // define capacity of ArrayBlockingQueue
        int capacity = 5;
  
        // create object of ArrayBlockingQueue
        ArrayBlockingQueue queue = new ArrayBlockingQueue(capacity);
  
        // Add elements to ArrayBlockingQueue using put method
        queue.put(223);
        queue.put(546);
        queue.put(986);
        queue.put(357);
        queue.put(964);
  
        // print Queue
        System.out.println("queue contains " + queue);
    }
}
Output :
queue contains [223, 546, 986, 357, 964]

示例 2

// Java Program to demonstrate put(E e)
// method of ArrayBlockingQueue
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
  
    public static void main(String[] args) throws InterruptedException
    {
        // define capacity of ArrayBlockingQueue
        int capacity = 5;
  
        // create object of ArrayBlockingQueue
        ArrayBlockingQueue queue = new ArrayBlockingQueue(capacity);
  
        // Add elements to ArrayBlockingQueue using put method
        queue.put("StarWars");
        queue.put("SuperMan");
        queue.put("Flash");
        queue.put("BatMan");
        queue.put("Avengers");
  
        // print Queue
        System.out.println("queue contains " + queue);
  
        // remove some elements
        queue.remove();
        queue.remove();
  
        // Add elements to ArrayBlockingQueue using put method
        queue.put("CaptainAmerica");
        queue.put("Thor");
  
        System.out.println("queue contains " + queue);
    }
}
Output :
queue contains [StarWars, SuperMan, Flash, BatMan, Avengers]
queue contains [Flash, BatMan, Avengers, CaptainAmerica, Thor]

参考:
https://docs.oracle.com/javase/7/docs/api/java Java)