title: Problems with implementing a deque in java
body: <p>sorry, just following on from the question I had here : <a href="https://stackoverflow.com/questions/4927026/double-sided-queue-problem">here</a> I am trying to run this method to remove a generic value (EltType) from a double sided queue(deque), but I keep getting an error in that, I call insertFirst twice, and insert the value "3" into the array twice, then, when I run removeFirst, it will print out "3" once, and then "Null" thereafter. Would anyone be able to help me out please ?</p>
  
  <pre><code>class ArrayBasedDeque&lt;EltType&gt; {
  
    private final int CAPACITY = 10;
    private int capacity;
    private int end;
    private EltType deque[];  
  
    public ArrayBasedDeque() {
      this.capacity = CAPACITY;
      deque = (EltType[]) (new Object[capacity]);  
    } 
  
  
   public EltType removeFirst() {
      EltType[] tempArray;
      EltType returned = deque[0];
      tempArray = (EltType[]) new Object[capacity];
        for (int i=1;i&lt;capacity;i++) {
          tempArray[i-1] = deque[i]; 
        }
        deque = tempArray;
      return returned;
    }
  
  
    public boolean isEmpty() {
      return end == 0;
    }
  
    public void insertFirst(EltType first) {
      if(!isEmpty()) {
      EltType[] tempArray;
      tempArray = (EltType[]) new Object[capacity+1];
      for (int i=0;i&lt;deque.length;i++) {
        tempArray[i+1] = deque[i]; 
      }
      deque = tempArray; 
      }
     deque[0] = first;
    }
  
  }
  </code></pre>
  
  <p>Thank you :)</p>