java Queue中 remove/poll/take, add/offer/put, element/peek区别

项目中用到了 BlockingQueue,使用take()方法获取阻塞队列的头部元素,突然想起 队列还有个 poll 方法也是返回头部元素,特意查了查两个方法的区别,有个帖子总结的不错,特转载以记录。原贴地址:java Queue中 remove/poll/take, add/offer/put, element/peek区别

方法作用差别
remove删除队列里面指定元素有则删除返回 true,没有则返回 false
poll移除并返问队列头部的元素如果队列为空,则返回null。该方法是不阻塞
take移除并返回队列头部的元素如果队列为空则阻塞调用线程。如果队列为空则阻塞当前线程直到队列不为空然后返回元素,如果在阻塞的时候被其它线程设置了中断标志,则被阻塞线程会抛出 InterruptedException 异常而返回。
add增加一个元素如果队列已满,则抛出一个IIIegaISlabEepeplian异常
offer添加一个元素并返回true如果队列已满,则返回false。如果 e 元素为 null 则抛出 NullPointerException 异常。该方法不阻塞
put添加一个元素并返回true如果队列已满则阻塞当前线程直到队列有空闲插入成功后返回 true,如果在阻塞的时候被其它线程设置了中断标志,则被阻塞线程会抛出 InterruptedException异常而返回,另外如果 e 元素为 null 则抛出 NullPointerException 异常
element返回队列头部的元素如果队列为空,则抛出一个NoSuchElementException异常
peek返回队列头部的元素如果队列为空,则返回null。该方法是不阻塞
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值