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的一部分)嗎?線程安全並不重要。
[谷歌搜索_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建議如下。當然,如果你事先不知道這種東西被稱爲循環或環形緩衝區,那麼搜索起來可能會更困難。 –