今天用到LinkedBlockingDeque实现了个功能,做下笔记
LinkedBlockingDeque常用方法
初始化(构造方法)
- public LinkedBlockingQueue(); //设置容量为Integer.MAX
- public LinkedBlockingQueue(int capacity); //设置指定容量
- public LinkedBlockingQueue(Collection<? extends E> c); //穿入一个容器,如果调用该构造器,容量默认也是Integer.MAX_VALUE
(我是直接默认MAX,简单粗暴)
入列
- put():首选。队满是阻塞
- offer():队满时返回false
出列
- take():首选。当队列为空时阻塞
- poll():弹出队顶元素,队列为空时,返回空
- peek():和poll烈性,返回队队顶元素,但顶元素不弹出。队列为空时返回null
- remove(Object o):移除某个元素,队列为空时抛出异常。成功移除返回true
判空
推荐用isEmtpy(),也可以通过size()判断队列长度重而判断是否为空
是不是很简单,学会了吗!!!!