容量有限的FIFO缓冲区可覆盖最旧的元素

yeg*_*256 3 java data-structures

我正在尝试在Java中创建一个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
Run Code Online (Sandbox Code Playgroud)

我是在重新发明一个轮子吗?你能推荐一些同样的库(或者也许它是JDK的一部分)吗?线程安全并不重要.

Fls*_*Zen 5

Apache的Common.Collections具有CircularFifoBuffer,它应该符合您的要求.