/** * @Title: Stack.java * @Description: 栈的实现 * @author glorychou * @date 2017年2月24日 下午3:05:29 */ package per.zyf.bds; /** * @author glorychou * */ public class Stack<E> { // 栈元素 private ArrayList<E> elementData; // 栈大小 private int size; /** * 初始化栈 */ public Stack() { elementData = new ArrayList<>(); } /** * @Description: 压栈 * @param e 数据 * @return void 返回类型 */ public void push(E e) { elementData.add(e); size = elementData.size(); } /** * @Description: 弹栈 * @return E 所弹出的数据 */ public E pop() { // 移除最后一项数据 final E e = elementData.remove(elementData.size()); size = elementData.size(); return e; } /** * @Description: 获取栈顶元素 * @return E 返回栈顶元素数据 */ public E peek() { return elementData.get(size - 1); } /** * @Description: 判断栈是否为空 * @return boolean 返回类型 */ public boolean isEmpty() { return size > 0 ? false : true; } /** * @Description: 获取栈大小 * @return int 栈大小 */ public int size() { return size; } }