package com.coding.basic.stack; import java.util.EmptyStackException; import com.coding.basic.ArrayList; public class Stack<E> { private ArrayList<E> elementData = new ArrayList<E>(); public void push(Object o){ elementData.add(o); } public E pop(){ int length = size(); E lastData = peek(); elementData.remove(length - 1); return lastData; } public E peek(){ if(size()<=0) throw new EmptyStackException(); return elementData.get(size()-1); } public boolean isEmpty(){ return size() == 0; } public int size(){ return elementData.size(); } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("["); for (int i = 0; i < size(); i++) { sb.append(elementData.get(i)).append(", "); } sb.deleteCharAt(sb.length()-1); sb.deleteCharAt(sb.length()-1); sb.append("]"); return sb.toString(); } }