美文网首页
Stack源代码分析

Stack源代码分析

作者: 梦想家图图图 | 来源:发表于2016-10-27 10:23 被阅读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

    相关文章

      网友评论

          本文标题:Stack源代码分析

          本文链接:https://www.haomeiwen.com/subject/cpijuttx.html