我正在寻找一个集合:
Deque/ List- 即支持在"顶部"插入元素(最新项目到顶部) - deque.addFirst(..)/ list.add(0, ..).它可能是a Queue,但是迭代顺序应该是反向的 - 即最近添加的项应该首先出现.我可以LinkedBlockingDeque把它包装到我的自定义集合中,在add操作检查大小并丢弃最后一个项目时.有更好的选择吗?
我做了这个简单的imeplementation:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
对于我的需求,这已经足够了,但它应该是记录良好的方法,而不是addFirst/ offerFirst仍然遵循阻塞双端队列的语义.
| 归档时间: |
|
| 查看次数: |
6469 次 |
| 最近记录: |