如何实现一个队列,其中第一个项目在满时自动弹出?

时间:2015-02-13 15:00:26

标签: java collections queue

我正在跟踪颜色列表。我只需要担心添加到此列表中的最后两种颜色。所以这个队列应该是一个固定的大小(2)。

    queue.add(color1);
    queue.add(color2);
    queue.add(color3); //adding color3 should automatically remove color1 from the queue. 
    //So the queue should now only contain 'color2' and 'color3'

Java是否有针对此类操作的内置集合?或者我是否需要自己构建它?

1 个答案:

答案 0 :(得分:1)

我认为你可能正在寻找来自Apache Commons 4.x的 CircularFifoQueue ,它具有固定的大小并默默地删除元素以为新元素腾出空间。这来自doc:

  

CircularFifoQueue是一个先进先出队列,具有固定大小,如果已满,则替换其最旧的元素。

     

CircularFifoQueue的删除顺序基于广告订单;元素的删除顺序与添加元素的顺序相同。迭代顺序与删除顺序相同。