我需要一个简单的缓存机制。
我想要跟上最近添加的100个最新项目,但不超过该限制。当我添加另一个项目时,我希望该集合自动删除第101个项目。想象一下,将LifeSaver糖果推到管子里 - 当我在管子的另一端添加另一个糖果时,另一端糖果会掉出来。
写我自己很简单。在执行“添加”之前,我的“添加”方法将首先删除最旧的项目。我只是想知道是否已经写过这样的课程。
我查看了捆绑的Collection类,List,Queue等。我也看了Google Guava。但似乎都没有这个简单的功能。
谷歌这是一个难题,因为我不知道这种行为的行话。
答案 0 :(得分:10)
CircularFifoQueue是一个先进先出队列,具有固定大小,如果已满,则替换其最旧的元素。
我想这就是你要找的行为。它来自Apache commons集合(link)