Stack源代码分析

2016-10-27  本文已影响0人  梦想家图图图

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

上一篇下一篇

猜你喜欢

热点阅读