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

Java 具有覆盖最旧元素的有限容量的FIFO缓冲区,java,data-structures,Java,Data Structures,我正在尝试用Java创建一个数据结构,它的容量有限,当没有足够的空间容纳新的元素时,会删除最旧的元素。例如: 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 FIFO

我正在尝试用Java创建一个数据结构,它的容量有限,当没有足够的空间容纳新的元素时,会删除最旧的元素。例如:

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
FIFO FIFO=新的FIFO(100);//最多100个元素
对于(int i=0;i<500;i++){
先进先出写入(i);
}
断言fifo.read()==400;//元素0..399丢失
我在重新发明轮子吗?你能推荐一些类似的库(或者它是JDK的一部分)吗?线程安全并不重要。

Apache有哪些应该满足您的要求。

让我想到了,这反过来又推荐了下面Fls的Zen建议的相同类。当然,如果您事先不知道这种东西被称为循环或环形缓冲区,那么搜索起来可能会更困难。