首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采集队列

采集队列
EN

Stack Overflow用户
提问于 2010-08-19 21:50:05
回答 2查看 504关注 0票数 0

如果我想让一个队列的自定义实现是正确的,我可以选择任何我想要的顺序(不是FIFO),但我必须始终尊重这样一个事实,即要删除的元素是定位为"head“的元素?

但是对于插入操作,我没有必要把元素放到尾部(比如放到FIFO中)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-19 21:55:15

你是对的。javadoc明确说明了这一点:

队列通常但不一定以先进先出( FIFO )的方式对元素进行排序。其中的例外是优先级队列,它根据提供的比较器或元素的自然排序对元素进行排序,以及LIFO队列(或堆栈),它对元素进行后进先出( LIFO )排序。无论使用哪种排序,队列的头部都是可以通过调用remove()或poll()删除的元素。在FIFO队列中,所有新元素都插入到队列的尾部。其他类型的队列可以使用不同的放置规则。每个队列实现都必须指定其排序属性。

票数 3
EN

Stack Overflow用户

发布于 2010-08-19 21:58:29

你是对的。

Queue documentation甚至明确说明了这一点(强调我的):

以先进先出(first- in -first-out)的方式对元素进行排队,通常,但不一定是先出的()。..。无论使用哪种排序,队列的头部都是将通过调用remove()poll()删除的元素。

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

https://stackoverflow.com/questions/3522424

复制
相关文章

相似问题

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