我正在跟踪颜色列表。我只需要担心添加到此列表中的最后两种颜色。所以这个队列应该是一个固定的大小(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是否有针对此类操作的内置集合?或者我是否需要自己构建它?
答案 0 :(得分:1)
我认为你可能正在寻找来自Apache Commons 4.x的 CircularFifoQueue ,它具有固定的大小并默默地删除元素以为新元素腾出空间。这来自doc:
CircularFifoQueue是一个先进先出队列,具有固定大小,如果已满,则替换其最旧的元素。
CircularFifoQueue的删除顺序基于广告订单;元素的删除顺序与添加元素的顺序相同。迭代顺序与删除顺序相同。