目录
1. 概念

2. 常用的栈的方法
2.1 方法
| 方法 | 功能 | 
|---|---|
| push() | 在栈顶插入元素 | 
| pop() | 删除栈顶元素,并返回该元素的值。如果栈为空,则抛出EmptyStackException异常 | 
| peek() | 返回该元素的值。如果栈为空,则抛出EmptyStackException异常 | 
| empty() | 如果栈为空返回true,或者返回false | 
| size() | 返回栈内元素个数 | 
2.2 代码
public static void main(String[] args) {
        Stack<Character> stack = new Stack<>();
        //插入A B C
        stack.push('A');
        stack.push('B');
        stack.push('C');
        System.out.println(stack.size());//获得栈中元素个数,打印   3
        System.out.println(stack.pop());//删除并获得栈顶元素 C
        System.out.println(stack.pop());//删除并获得栈顶元素 B
        stack.push('D');//栈顶插入D
        System.out.println(stack.empty());
}
3. 自己实现栈
3.1 构造MyStack
public class MyStack {
    public int[] elem;
    public int size = 0;
    public MyStack(){
        elem = new int[10];
    }
    //...
}3.2 push()
    //入栈、压栈
    public void push(int val){
        if(size == elem.length){
            ensureCapacity();
        }
        elem[size] = val;
        size++;
    }3.3 ensureCapacity()
private void ensureCapacity() {
        elem = Arrays.copyOf(elem,2 * elem.length);
}
3.4 pop()
    public int pop(){
        if(size == 0 ){
            throw new EmptyStackException();
        }
        return elem[--size];
    }3.5 peek()
    //获得栈顶
    public int peek(){
        if(size == 0){
            throw new EmptyStackException();
        }
        int key = size - 1;
        return elem[key];
    }3.6 empty()
    //检查栈是否为空
    public boolean empty(){
        return size == 0;
    }3.7 szie()
    //栈内元素的个数
    public int size(){
        return size;
    }









