Queue

一、Queue是一个interface。

           特点是:FIFO(first in first out)先进先出

           出队入队:O(1)

           查找:O(n)

Queue提供两套接口。

1、add(E):队满时增加元素会抛出异常

      remove():队空时会抛出异常

      element():队空时会抛出异常

2、offer(E):队满时,会返回false

      poll:对空时,返回null。(队列中不允许放入null值,会和poll对空发生歧义,尽管描写具体实现可以放置null值)

      peek:对空时,返回null

Queue的非阻塞的一个接口是Deque。LinkedList、ArrayDeque、PriorityQueue等都实现了Queue的功能。

Deque是双端队列的接口,在Queue的基础上又提供了:addFirst、addLast、removeFirst、removeLast、getFirst、getLast;offerFirst、offerLast、pollFirst、pollLast、peekFirst、peekLast等两套抛异常和不抛异常的接口。

一般建议使用:ArrayDeque和LinkedList两个实现类来实现队栈。

 

二、BlockingQueue继承Queue,是其他阻塞队列的父类

public interface BlockingQueue extends Queue

比如:BlockingDeque、ArrayBlockingQueue、LinkedBlockingQueue、DelayQueue、PriorityBlockingQueue等的父类

BlockingQueue在上述接口的基础上又提供两套接口:

3、put(E):队满时阻塞,直到队列存在容量时加入

      offer(E, timeout,timeunit):队满则等待最长timeout时间,失败则false,成功返回true

4、take():队空时阻塞,直到队列存在数据时返回数据

      poll(timeout,timeunit):对空时等待最长timeout时间,失败则null,成功返回数据

 

BlockingQueue是BlockingDeque、ArrayBlockingQueue、LinkedBlockingQueue等的父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值