2013-04-18 23 views
3

我试图在Java中创建FIFO (first in first out)数据结构,这将有能力有限,并删除最古老的元素时,没有对新的足够空间的能力有限。例如:FIFO缓冲器与覆盖最古老的元素

FIFO<Integer> fifo = new FIFO<Integer>(100); // 100 elements maximum 
for (int i = 0; i < 500; i++) { 
    fifo.write(i); 
} 
assert fifo.read() == 400; // elements 0..399 are lost 

我重新发明了一个轮子吗?你能推荐一些图书馆(或者它可能是JDK的一部分)吗?线程安全并不重要。

+1

[谷歌搜索_JAVA圆形buffer_(http://www.google.com/search?q=java+circular+buffer)使我[这个现有的堆栈溢出后(http://stackoverflow.com/问题/ 7266042/java的环形缓冲器),这反过来又建议相同的[org.apache.commons.collections.buffer.CircularFifoBuffer](http://commons.apache.org/proper/commons-collections/apidocs/org /apache/commons/collections/buffer/CircularFifoBuffer.html)Fls'Zen建议如下。当然,如果你事先不知道这种东西被称为循环或环形缓冲区,那么搜索起来可能会更困难。 –

回答