1

返されたキューに新しい要素が含まれ、元のキューが同じままになるように、エンキュー関数を呼び出した後にキューを返す方法はありますか?

例えば

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

これは新しいキューを返しますが、このアプローチは遅すぎます。他の方法はありますか?おそらく、元のキューと構造を共有することによってですか?

主な問題は、元のキューの残りをコピーせずに、新しいキューを返す方法です (要素をキューに追加した後)。(参照する方法はありますか?)

例 original_queue=[1 2 3 4 5]

enqueue(6) を呼び出すと、[1 2 3 4 5 6] が返されます。

ただし、original_queue=[1 2 3 4 5]

4

1 に答える 1

0

CopyOnWriteArrayListは、キューの代わりになる可能性があり、必要な動作をする可能性があります。これがあなたの目的にとって十分に効率的であるかどうかについてのコメントはありません。

于 2013-08-24T17:09:07.650 に答える