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)
极客教程