Read Stack source code

//A collection of stack structures (first in, last out) inherits from Vector
//Basically has been replaced by ArrayDeque

// first look at the constructor
public Stack() {
    }

// add an element
 public E push(E item) {
        addElement(item);

        return item;
    }

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

// get and remove an element
public synchronized E pop() {
        E obj;
        int     len = size();

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

        return obj;
    }

// remove an element
 public synchronized E peek() {
        int     len = size();

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

//whether the queue is empty
public boolean empty() {
        return size() == 0;
    }


//The position of the returned object in the queue starts at 1
public synchronized int search(Object o) {
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326398731&siteId=291194637
Recommended