欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Stack源代码分析

程序员文章站 2022-06-21 10:45:17
...

Stack是栈,特点是FILO(先进先出),Stack继承了Vector

publicclass Stack<E> extends Vector<E>

stack中的方法是线程安全的,比如add方法

public E push(E item) {
        addElement(item);
        return item;
    }

//线程安全的addElement方法所以push方法是先出安全的
public synchronized void addElement(E obj) {
        modCount++;
        ensureCapacityHelper(elementCount + 1);
        elementData[elementCount++] = obj;
    }

pop方法是弹出栈顶元素

public synchronized E pop() {
        E       obj;
        int     len = size();
        obj = peek();
       //删除最后的元素,最后的元素是新插入的
        removeElementAt(len - 1);
        return obj;
    }

4.Stack具体的代码示例

Stack<String> s = new Stack<String>();
        s.push("11");
        s.push("22");
        System.out.println(s.size());
        for(String ss : s) {
            System.out.println(ss);
        }

        s.pop();

        for(String ss : s) {
            System.out.println(ss);
        }

运行结果

2
11
22
11