2012-08-29 70 views
0

是否有一個fifo隊列實現,提供在偷看後替換head元素?java fifo隊列允許推回?

我想用這個在部分寫入網絡連接(當使用Java nio選擇器)後將部分寫入的緩衝區推回到隊列中。

這會比將部分寫入的緩衝區作爲附件粘貼到選擇鍵上稍微清潔一些,但如果沒有方便的實現可用,我將不得不使用它。

+2

不偷看只檢查第一個元素,不刪除它? – squiguy

回答

3

您可以使用Deque它允許您添加到開始或結束。

但是,如果你有一個部分寫入和你的緩衝區不是很大,你可以有一個緩慢的消費者,你可能會考慮一個不同的動作,如關閉連接。

-1

偷看後頭部元素未受干擾,所以你的問題沒有意義。只是偷看,嘗試寫入,如果沒有任何遺漏然後從隊列中刪除緩衝區。

+0

請重新閱讀帖子。重點是如果寫入沒有完成,我想用剩餘的數據替換隊列頭部。謝謝。 –

+0

@eqbridges請重新閱讀答案。關鍵是(a)你首先沒有從隊列中移除任何東西,所以沒有任何東西可以替代,並且(b)僅僅在你完成它之後將其移除而不是移除它會更簡單然後開始一個互聯網論壇搜索如何讓它回到那裏。 – EJP