當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java ArrayBlockingQueue put()用法及代碼示例


ArrayBlockingQueue是有界的阻塞隊列,該隊列內部使用數組支持的元素存儲。

  • ArrayBlockingQueue類是Java Collections Framework的成員。
  • 有界意味著它將具有固定的大小,您不能存儲數量超過隊列容量的元素。
  • 隊列還遵循FIFO(先進先出)規則,用於存儲和刪除隊列中的元素。
  • 如果您嘗試將一個元素放入一個完整的隊列或從一個空隊列中取出一個元素,那麽該隊列將阻塞。

如果隊列未滿,則put(E e)方法將作為參數傳遞給該方法的元素插入此隊列(ArrayBlockingQueue)的尾部。如果隊列已滿,則它將等待空間可用。
用法:

public void put(E e)  throws InterruptedException

參數:
e –要添加到隊列中的元素。
拋出
InterruptedException-如果在等待時被中斷。
NullPointerException-如果指定的元素為null。


下麵的程序說明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<Integer> queue = new ArrayBlockingQueue<Integer>(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<String> queue = new ArrayBlockingQueue<String>(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/util/concurrent/ArrayBlockingQueue.html#put(E)



相關用法


注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 ArrayBlockingQueue put() method in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。