Java中的ArrayBlockingQueue put()方法

Java中的ArrayBlockingQueue put()方法

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

  • ArrayBlockingQueue 类是Java Collections Framework的成员。
  • 有界意味着它将有一个固定的大小,您不能将元素数量存储在队列的容量以上。
  • 队列也遵循先进先出的规则来存储和删除队列中的元素。
  • 如果您尝试将元素放入满队列或从空队列中取出元素,则队列将阻止您执行此操作。

put(E e) 方法在数组阻塞队列(ArrayBlockingQueue)的尾部插入作为参数传递给方法的元素,如果队列未满则会等待空间可用。

语法:

public void put(E e)  throws InterruptedException

参数:

e-要添加到队列中的元素。

Throws

InterruptedException-在等待时中断。

NullPointerException——如果指定的元素为null。

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

示例1:

// Java演示ArrayBlockingQueue的put(E e)方法。
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
    public static void main(String[] args) throws InterruptedException
    {       
        //定义ArrayBlockingQueue的容量
        int capacity = 5;
        //创建ArrayBlockingQueue的对象
        ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(capacity);
        //使用put方法将元素添加到ArrayBlockingQueue中
        queue.put(223);
        queue.put(546);
        queue.put(986);
        queue.put(357);
        queue.put(964);
        //输出队列
        System.out.println("队列包含" + queue);
    }
}

输出:

队列包含[223, 546, 986, 357, 964]

示例2:

// Java演示ArrayBlockingQueue的put(E e)方法。
  
import java.util.concurrent.ArrayBlockingQueue;
  
public class GFG {
    public static void main(String[] args) throws InterruptedException
    {       
        //定义ArrayBlockingQueue的容量
        int capacity = 5;
        //创建ArrayBlockingQueue的对象
        ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<String>(capacity);
        //使用put方法将元素添加到ArrayBlockingQueue中
        queue.put("StarWars");
        queue.put("SuperMan");
        queue.put("Flash");
        queue.put("BatMan");
        queue.put("Avengers");
        //输出队列
        System.out.println("队列包含" + queue);
        //移除一些元素
        queue.remove();
        queue.remove();
        //使用put方法将元素添加到ArrayBlockingQueue中
        queue.put("CaptainAmerica");
        queue.put("Thor");
        System.out.println("队列包含" + queue);
    }
}

输出:

队列包含[StarWars, SuperMan, Flash, BatMan, Avengers]
队列包含[Flash, BatMan, Avengers, CaptainAmerica, Thor]

参考资料:

https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html#put(E)

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程