package com.myutil; /** * 栈 */ public class Stack<T> { private ArrayList<T> elementList = new ArrayList<>(); /** * 入栈 * * @param element 入栈的元素 */ public void push(T element) { elementList.add(element); } /** * 出栈 * * @return 出栈的元素 */ public T pop() { if (elementList.size() == 0) { throw new ArrayIndexOutOfBoundsException("Stack is empty, don't to pop()."); } T element = elementList.get(elementList.size() - 1); elementList.remove(elementList.size() - 1); return element; } /** * 获取栈顶元素 * * @return 栈顶元素 */ public T peek() { if (elementList.size() == 0) { throw new ArrayIndexOutOfBoundsException("Stack is empty, don't to peek()."); } return elementList.get(elementList.size() - 1); } /** * 是否为空栈 * * @return true-是 false-否 */ public boolean isEmpty() { return elementList.size() == 0; } /** * 获取当前栈大小 * * @return 当前栈大小 */ public int size() { return elementList.size(); } }