在不改变结构的情况下排列元素

时间:2013-08-24 16:58:22

标签: java queue performance

有没有办法在调用enqueue函数后返回队列,以使返回的队列包含新元素,原始队列保持不变?

e.g。

ArrayList<T> result = new ArrayList<T>(list);
result.add(0, t);
return result;

这将返回一个新队列,但这种方法太慢了。 还有其他方法吗?也许是通过与原始队列共享结构?

主要问题是如何返回一个新队列(在将一个元素附加到队列之后)但不复制原始队列的其余部分。 (有没有办法引用它?)

e.g。 original_queue = [1 2 3 4 5]

call enqueue(6)应返回[1 2 3 4 5 6]

但original_queue = [1 2 3 4 5]

1 个答案:

答案 0 :(得分:0)

CopyOnWriteArrayList可能是您队列的替代方案,可能具有您想要的行为。没有评论这是否足以满足您的目的。