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

读Stack源码 博客分类: java集合 java 

程序员文章站 2024-03-14 12:41:46
...
//一个堆栈结构的集合(先进后出)继承于Vector
//基本已被ArrayDeque取代

//先看构造函数
public Stack() {
    }

//新增一个元素
 public E push(E item) {
        addElement(item);

        return item;
    }

public synchronized void addElement(E obj) {
        modCount++;
        ensureCapacityHelper(elementCount + 1);
        elementData[elementCount++] = obj;
    }

//取出并移除一个元素
public synchronized E pop() {
        E       obj;
        int     len = size();

        obj = peek();
        removeElementAt(len - 1);

        return obj;
    }

//取出一个元素
 public synchronized E peek() {
        int     len = size();

        if (len == 0)
            throw new EmptyStackException();
        return elementAt(len - 1);
    }

//队列是否为空
public boolean empty() {
        return size() == 0;
    }


//返回对象在队列中的位置从1开始
public synchronized int search(Object o) {
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }
相关标签: java