java先进先出数组_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 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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值