package assignment;
public class Stack<T> {
private MyArrayList<T> elementData = new MyArrayList<>();
public void push(T o) {
elementData.add(o);
}
public T pop() {
if (!isEmpty()) {
T data = elementData.remove(elementData.size() - 1);
return data;
}
throw new EmptyStackException();
}
public T peek() {
if(!isEmpty())
return elementData.get(elementData.size() - 1);
throw new EmptyStackException();
}
public boolean isEmpty() {
return elementData.size() == 0;
}
public int size() {
return elementData.size();
}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
for (int i = elementData.size()-1; i >=0; i--) {
stringBuilder.append(elementData.get(i));
if (i != 0) {
stringBuilder.append(", ");
}
}
return stringBuilder.toString();
}
}
class EmptyStackException extends RuntimeException {
public EmptyStackException() {
super();
}
public EmptyStackException(String string) {
super(string);
}
}