当前位置: 首页 > 面试题库 >

是否有一个Java集合可以在添加更多项目时删除项目?(简单的缓存)[

刘阳荣
2023-03-14
问题内容

我需要一个简单的缓存机制。

我想保留最近添加的最近100个项目,但不超过该限制。当我添加另一个项目时,我希望集合自动删除第101个项目。想象一下将LifeSaver糖果推入试管中-
当我在试管的一端添加另一种糖果时,另一端会掉出另一种糖果。

自己写会很简单。我的“添加”方法将首先删除最早的项,然后再执行“添加”。我只是想知道是否已经编写了这样的课程。

我查看了捆绑的Collection类,List,Queue等。我也看了Google
Guava
。但是似乎没有一个简单的功能。

对于Google来说,这是一个困难的话题,因为我不知道这种行为的行话。


问题答案:

CircularFifoQueue是固定大小的先进先出队列,如果已满,将替换其最早的元素

我想这就是您要寻找的行为。它来自Apache
Commons集合(链接)



 类似资料:
  • 问题内容: 嗨,我必须从一个JList中选择一个元素,将其从第一个元素中删除。我创建的方法仅插入一个元素,覆盖最后一个元素,并且不会从第一个JList中删除所选项目。这是代码: 第一名单 通过此方法填充: 第二个列表,我要在其中插入从第一个列表中删除的项目: 这是无效代码: 谢谢 问题答案: 问题是 您可能要添加一个元素并立即将其删除,因为添加和删除操作都在同一listModel上。 尝试

  • 问题内容: 这是我认为的相关代码: 单击复选框后,我希望从数据库中删除数组中的适当对象。 我的功能如下: 但是,这将删除数据库中的所有条目。我希望它仅删除有问题的特定对象。反正我有这样做吗? 问题答案: 好,知道了。 循环使用时,请使用。这使您可以将参数作为参数发送到函数,并且效果很好。

  • 问题内容: 在Netbeans中,我可以使用现有Java文件源创建一个项目。如果我想向项目添加其他资源,该怎么做? 问题答案: 右键点击项目 “财产” “来源”(在树的左上方) 对话框左侧的“源软件包文件夹:” “新增文件夹”

  • 问题内容: 我希望能够在迭代过程中从集合中删除多个元素。最初,我希望迭代器足够聪明,以使下面的幼稚解决方案能够正常工作。 但这会引发一个错误。 请注意,就我所知,iterator.remove()无法正常工作,因为我需要一次删除多个内容。还假设不可能确定“即时”删除哪些元素,但是可以编写该方法。在我的特定情况下,要确定要在迭代过程中删除的内容,将占用大量内存和处理时间。由于内存限制,也无法制作副本

  • 问题内容: 我有一个对象,该对象有几个用public getter但私有setter定义的集合属性,在这种情况下,将反序列化的项目添加到这些集合中,而现有的项目保持不变。 在反序列化之前清除此类成员集合时,我需要采取一种行为。 我尝试使用带有属性的方法手动清除集合。 这种方法的问题在于,即使在JSON字符串中不存在collection属性,它仍将清除集合。 当仅清除那些在JSON字符串中实际定义的