このメソッドをより速くエンキューする方法はありますか? このメソッドにパフォーマンス テストを追加しようとしていますが、これに代わるものがあるかどうか疑問に思っています。
import java.util.ArrayList;
import java.util.List;
import java.util.NoSuchElementException;
public class ImmutableQueueImpl<E> implements ImmutableQueue<E> {
private List<E> queue;
public ImmutableQueueImpl() {
queue = new ArrayList<E>();
}
private ImmutableQueueImpl(List<E> queue) {
this.queue = queue; }
@Override
public ImmutableQueue<E> enqueue(E e) {
if (e == null) {
throw new IllegalArgumentException();
}
List<E> clone = new ArrayList<E>(queue); clone.add(e);
return new ImmutableQueueImpl<E>(clone);
}
@Override
public ImmutableQueue<E> dequeue() {
if (queue.isEmpty()) {
throw new NoSuchElementException();
}
List<E> clone = new ArrayList<E>(queue);
clone.remove(0);
return new ImmutableQueueImpl<E>(clone);
}
@Override
public E peek() {
if (queue.isEmpty()) {
throw new NoSuchElementException();
}
return queue.get(0);
}
@Override
public int size() {
return queue.size();
}
}
編集 参照用に完全なコードを追加しました。それが役立つことを願っています