2013-04-18 62 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建議如下。當然,如果你事先不知道這種東西被稱爲循環或環形緩衝區,那麼搜索起來可能會更困難。 –

回答