一.代码部分
1.定义接口
package com.amazing.jdk.datastructure; /** * Created by yaming on 18-6-21. */ public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); E peek(); }
2.基于数组实现:
public class ArrayStack<E> implements Stack<E> { ArrayList<E> arrayList; public ArrayStack(int capacity){ arrayList = new ArrayList(capacity); } public ArrayStack(){ arrayList = new ArrayList<E>(); } @Override public int getSize() { return arrayList.getSize(); } @Override public boolean isEmpty() { return arrayList.isEmpty(); } @Override public void push(E e) { arrayList.addLast(e); } @Override public E pop() { return arrayList.removeLast(); } @Override public E peek() { return arrayList.get(getSize()-1); } public int getCapacity(){ return arrayList.getCapacity(); } @Override public String toString() { StringBuilder res = new StringBuilder(); res.append("Stack:"); res.append("["); for (int i = 0; i < arrayList.getSize(); i++) { res.append(arrayList.get(i)); if(i != arrayList.getSize()-1){ res.append(","); } } res.append("] top"); return res.toString(); } }