首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取队列中的第n个项目?

如何获取队列中的第n个项目?
EN

Stack Overflow用户
提问于 2012-03-10 00:34:06
回答 5查看 27.8K关注 0票数 7

我的应用程序中有许多队列和优先级队列。我想轻松地访问这些队列中的第n个项目,但没有看到使用API实现这一点的简单方法。

我想我可以创建一个Iterator并迭代到第n个元素,或者使用toArray()[index],但似乎应该有一种更简单的方法。

我是不是遗漏了什么?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-10 00:38:12

我是不是漏掉了什么?

是-通过索引访问元素不是队列概念的一部分。

如果你需要通过索引来访问元素,你需要一个列表,而不是一个队列。

票数 19
EN

Stack Overflow用户

发布于 2012-03-10 00:37:51

队列的整个要点是仅向头部(第一个元素)公开访问。如果您希望任意访问线性数据结构中的元素,请使用List (如果您执行的查找比推送/pops多得多,请考虑使用ArrayList,因为LinkedList没有针对随机访问进行优化)。

票数 2
EN

Stack Overflow用户

发布于 2012-03-10 00:38:23

对你来说,最简单的解决方案是使用自平衡的binary search tree,例如AVL tree, splay tree or red-black tree。它允许您在log( n)时间内通过元素的键访问元素,并以O(log + k)的顺序遍历对象,其中k是迭代的元素数。!!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9637631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档