public class StandardStack<T> implements Stack<T> {
private LinkedList<T> internalStack = new LinkedList<>();
... ....
@Override
public void push(T newCurrent) {
internalStack.addFirst( newCurrent );
}
@Override
public T pop() {
return internalStack.removeFirst();
}
@Override
public T getCurrent() {
return internalStack.peek();
}
@Override
public T getPrevious() {
if ( internalStack.size() < 2 ) {
return null;
}
return internalStack.get( internalStack.size() - 2 );
}
As you can see, new node is pushed at the beginning of the linked list, so 'getPrevious()' implementation is wrong. We simply return `internalStack.get( 1 )` (current node corresponds to index of 0). However, this method has never been used. Also, it has been fixed in v6 for its implementation has been totally changed. |