Java Queue的最佳实现?
我正在研究(在Java中)递归图像处理算法,该算法从中心点向外递归遍历图像的像素。
不幸的是,这会导致堆栈溢出。因此,我决定切换到基于队列的算法。
现在,这一切都很好,很花哨 - 但是考虑到它的队列将在很短的时间内分析数千个像素,同时不断弹出和推送,而不保持可预测的状态(它可能在长度100到20000之间的任何地方),队列实现需要具有显着快速的弹出和推送能力。
链表似乎很有吸引力,因为它能够将元素推到自身上,而无需重新排列列表中的任何其他内容,但是为了使它足够快,它需要轻松访问它的头部和尾部(或者如果它没有双重链接,则需要轻松访问倒数第二个节点)。可悲的是,我找不到任何与Java中链接列表的底层实现相关的信息,所以很难说链接列表是否真的是要走的路......
这就引出了我的问题。对于我打算做的事情,Java中队列接口的最佳实现是什么?(我不希望编辑甚至访问队列的头部和尾部以外的任何内容 - 我不希望进行任何形式的重新排列或任何事情。另一方面,我确实打算做很多推送和弹出,队列的大小会改变很多,所以预分配会效率低下)