【问题标题】:java fifo queue that allows pushing back?允许推回的java fifo队列?
【发布时间】:2012-08-29 14:42:54
【问题描述】:

是否有一个先进先出队列实现可以在偷看后替换头部元素?

我想在部分写入网络连接后(使用 java nio 选择器时)将部分写入的缓冲区推回队列。

这比将部分写入的缓冲区作为附件粘贴在选择键上要干净一些,但如果没有可用的方便实现,我将不得不使用它。

【问题讨论】:

  • 不偷看只是检查第一个元素而不是删除它?

标签: java data-structures nio


【解决方案1】:

您可以使用Deque,它允许您添加到开头或结尾。

但是,如果您有部分写入并且您的缓冲区不是很大,那么您的消费者可能会很慢,您可能会考虑采取不同的操作,例如关闭连接。

【讨论】:

    【解决方案2】:

    偷看后,头部元素不受干扰,所以你的问题没有意义。只是偷看,尝试写入,如果没有剩余内容然后从队列中删除缓冲区。

    【讨论】:

    • 请重新阅读帖子。关键是如果写入没有完成,我想用剩余的数据替换队列的头部。谢谢。
    • @eqbridges 请重新阅读答案。关键是(a)你没有从队列中删除任何东西,所以没有什么可以替换的,并且(b)在你完成它之后删除它而不是删除它更简单然后在互联网论坛上搜索如何找回它。
    猜你喜欢
    • 2012-01-31
    • 2023-04-03
    • 2017-04-12
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    相关资源
    最近更新 更多