2012-08-29 40 views
0

是否有一个fifo队列实现,提供在偷看后替换head元素?java fifo队列允许推回?

我想用这个在部分写入网络连接(当使用Java nio选择器)后将部分写入的缓冲区推回到队列中。

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

+2

不偷看只检查第一个元素,不删除它? – squiguy

回答

3

您可以使用Deque它允许您添加到开始或结束。

但是,如果你有一个部分写入和你的缓冲区不是很大,你可以有一个缓慢的消费者,你可能会考虑一个不同的动作,如关闭连接。

-1

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

+0

请重新阅读帖子。重点是如果写入没有完成,我想用剩余的数据替换队列头部。谢谢。 –

+0

@eqbridges请重新阅读答案。关键是(a)你首先没有从队列中移除任何东西,所以没有任何东西可以替代,并且(b)仅仅在你完成它之后将其移除而不是移除它会更简单然后开始一个互联网论坛搜索如何让它回到那里。 – EJP