0

このメソッドをより速くエンキューする方法はありますか? このメソッドにパフォーマンス テストを追加しようとしていますが、これに代わるものがあるかどうか疑問に思っています。

  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();
     }
    }

編集 参照用に完全なコードを追加しました。それが役立つことを願っています

4

1 に答える 1