接口
package core.stack;
public interface Stack<E> {
void push(E e);
E pop();
E peek();
int getSize();
boolean isEmpty();
}
ArrayStack
package core.stack;
import core.array.MyArrayList;
public class ArrayStack<E> implements Stack<E> {
private MyArrayList<E> data;
public ArrayStack(int capacity) {
this.data = new MyArrayList<E>();
}
public ArrayStack() {
this.data = new MyArrayList<E>();
}
public void push(E e) {
data.addLast(e);
}
public E pop() {
return data.removeLast();
}
public E peek() {
return data.getLast();
}
public int getSize() {
return data.getSize();
}
public boolean isEmpty() {
return data.isEmpty();
}
public int getCapacity(){
return data.getCapacity();
}
@Override
public String toString() {
StringBuilder res = new StringBuilder();
res.append("Stack: ");
res.append(data);
res.append(" top");
return res.toString();
}
}
Main
package core.stack;
public class Main {
public static void main(String[] args) {
ArrayStack<Integer> stack = new ArrayStack<Integer>();
for (int i = 0; i < 5; i++) {
stack.push(i);
System.out.println(stack);
}
stack.pop();
System.out.println(stack);
}
}