Queue 队列

1.基本方法

add(E e)–>在队列中增加一个元素,如果队列满了,则抛出异常。
offer(E e)–>向队列中添加元素,如果满了就返回false。
remove()–>移除并返回头部元素,队列为空则抛出异常。
poll()–>移除并返回头部元素,如果队列为空,则返回null。
element()–>返回不移除头部元素,队列为空则抛出异常。
peek()–>返回不移除头部元素,队列为空返回null。

2.阻塞队列(新增put(E e)方法用于将新数据添加到队列,一般时使用Lock锁实现阻塞)

ArrayBlockingQueue

arrayBlockingQueue一个定长的阻塞队列,因此创建的时候必须制定队列的大小,同时它还可以制定公平性策略,所谓的公平性策略是指:一旦设置为true开启公平性策略,那么,当当前线程处理完之后,会优先让在这个队列上等待时间最长的线程进行操作。这样做的弊端是会影响性能。
由于arrayBlockingQueue内部维护的是一个数组,因此可以进行下表操作。
itemAt(int i)返回指定下表的队列元素,但不删除该元素。
removeAt(int i)移除指定下标的元素,无返回值。
remove(object o)移除某个元素

LinkedBlockQueue

内部维护一个链表,创建时可以指定大小,也可以不指定。不指定时,默认大小时Integer.MAX_VALUE,即int最大值。同时它也没有公平性策略,遵循先进先出的原则。
它提供一个poll(long timeout,long timeunit)方法,
该方法用于删除并返回头部元素,同时制定时间后使元素变为可用。可以理解为在规定时间内,该方法为阻塞状态。

priorityBlockingQueue

可以设置容量,但没有容量限制。带有优先级的队列。并不是先进先出,基于堆栈数据结构。

synchronousQueue

一个没有数据缓冲的阻塞队列,这个队列只能存储一个元素,在队列中的这个元素没有被取走之前,无法存入新的元素

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值