如果:
Enumse1...e5,当我添加e6时,它将是e2...e6)。我将几乎总是迭代整个集合。我想LinkedList是我所需要的,但我在Java方面不是很有经验,所以我想确定一下。
发布于 2013-09-05 09:15:31
LinkedBlockingQueue
LinkedBlockingQueue lbq =new LinkedBlockingQueue(5);
if(!(lbq.offer(newOBject)){
lbq.take();
lbq.offer(newObject);
}EnumMap也可能是有用的,键仅限于枚举实例。
发布于 2013-09-05 09:07:05
这里需要的是一个支持FIFO的队列数据结构。
您可以从集合中使用LinkedList,Framework.It实现队列接口。
阅读关于Java链接列表的更多信息。
发布于 2013-09-05 09:35:48
--如果不需要强制执行队列的容量,可以只使用LinkedList。它实现了Queue接口,这正是您实际需要的。
像这样使用它:
Queue<EnumClass> queue = new LinkedList<EnumClass>();
queue.offer(newObj);
takenObj = queue.poll();--如果您必须限制的大小-- ArrayBlockingQueue将是一个很好的选择,因为不会有额外的内部对象创建(由数组支持的集合)。
Queue<EnumClass> queue = new ArrayBlockingQueue<EnumClass>(capacity);尽管如此,将它与Queue接口一起使用还是个好主意。这样,您就可以随意更改实际的实现。
https://stackoverflow.com/questions/18632047
复制相似问题