package com.yudaodata.protocol809.task;
import java.util.Arrays;
import java.util.EmptyStackException;
public class ArrayStack<T> {
private Object[] elements = new Object[16]; //數組大小默認16
private int count; //1.-1後指向棧內末尾的元素 2.統計棧內元素的數量
public void push(T e) {
//數組擴容
if (count == elements.length) {
elements = Arrays.copyOf(elements, 2 * count + 1);
}
elements[count++] = e;
}
public T pop() {
if (count == 0) {
throw new EmptyStackException();
}
T o = (T) elements[--count];
elements[count] = null; //防止內存泄漏
return o;
}
public static void main(String[] args) {
ArrayStack<Integer> arrayStack = new ArrayStack<>();
arrayStack.push(1);
arrayStack.push(2);
arrayStack.push(3);
System.out.println(arrayStack.pop()); //2
System.out.println(arrayStack.pop()); //1
System.out.println(arrayStack.pop()); //1
}}