Fix an obvious bug in StandardStack implementation
Description
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.
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.