具有限制的集合以及在添加新项目之前删除旧项目的能力,如果达到限制

时间:2016-08-22 10:28:48

标签: java collections

谁知道在添加新项目之前有限制和能力删除旧项目的集合,如果达到限制?

旧的条目,放在开头。

1 个答案:

答案 0 :(得分:1)

您应该使用Apache Commons Collections中的org.apache.commons.collections4.queue.CircularFifoQueue及其构造函数CircularFifoQueue(final int size)

  

CircularFifoQueue是一个先进先出队列,具有固定大小,如果已满,则替换其最旧的元素。   CircularFifoQueue的删除顺序基于插入顺序;元素的删除顺序与添加元素的顺序相同。迭代顺序与删除顺序相同。

示例:

class Test {
    public static void main(String[] args) {
        Queue<Integer> numbers = new CircularFifoQueue<>(2);
        for (int i = 0; i < 4; i++) {
            numbers.add(i);
            System.out.println("Iteration#" + i + " : " + numbers);
        }
    }
}

// Output:
// Iteration#0 : [0]
// Iteration#1 : [0, 1]
// Iteration#2 : [1, 2]
// Iteration#3 : [2, 3]