当前位置:  开发笔记 > 编程语言 > 正文

我应该使用什么数据结构来跟踪最近使用过的物品?

如何解决《我应该使用什么数据结构来跟踪最近使用过的物品?》经验,为你挑选了1个好方法。

我需要类似于有界队列的东西,我只能插入10个元素.新元素应覆盖最后插入的元素. 应该只有n个不同的元素

顺便说一下,我正在寻找Java中的建议.



1> e.James..:

这是队列数据结构的经典应用程序.大小为10的堆栈将跟踪您添加到其中的 10个元素,而大小为10的队列将跟踪10个最新元素.如果您正在查找"最近项目"列表,如问题标题所示,则可以使用队列.

编辑:以下是一个示例,用于可视化目的:

假设您要跟踪最近的4个项目,并按以下顺序访问8个项目:

四十二

以下是您的数据结构随时间变化的样子:

access  item      queue          stack
  1      F     [ F . . . ]    [ . . . F ]
  2      O     [ O F . . ]    [ . . O F ]
  3      R     [ R O F . ]    [ . R O F ]
  4      T     [ T R O F ]    [ T R O F ]
  5      Y     [ Y T R O ]    [ Y R O F ]
  6      T     [ T Y T R ]    [ T R O F ]
  7      W     [ W T Y T ]    [ W R O F ]
  8      O     [ O W T Y ]    [ O R O F ]

从堆栈中删除顶部元素将删除最近添加的项目,而不是最旧的项目.

从队列中删除一个元素会删除最旧的项目,因此您的队列将自动保存最新的项目.

编辑:感谢Adam Jaskiewicz,这里有一些关于Java的Queue实现的文档.


10个元素,而大小为10的队列将跟踪10个最新元素.如果您正在查找"最近项目"列表,如问题标题所示,则可以使用队列.
推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有