我做了一个简单的实现:
public class AutoDiscardingDeque<E> extends linkedBlockingDeque<E> { public AutoDiscardingDeque() { super(); } public AutoDiscardingDeque(int capacity) { super(capacity); } @Override public synchronized boolean offerFirst(E e) { if (remainingCapacity() == 0) { removeLast(); } super.offerFirst(e); return true; }}就我的需求而言,这已经足够了,但是它应该是经过证明的方法,不同于
addFirst/
offerFirst仍然遵循阻塞双端队列的语义。



