sorry, just following on from the question I had here : here 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 ?
class ArrayBasedDeque<EltType> { 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<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<deque.length;i++) { tempArray[i+1] = deque[i]; } deque = tempArray; } deque[0] = first; } } Thank you :)
deque = (EltType[]) (new Object[capacity])