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