Stack代碼解析

Stack是完全基於Vector代碼實現的,所以代碼相對較少,並且沒有定義新的屬性。

類中的方法:

1.添加

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

2.刪除

public synchronized E pop() {
    E obj;
    int len = size();
    obj = peek();
    removeElement(len - 1);
}

調用了peek()獲取要刪除的元素。

public synchronized E peek() {
    int len = size();
    if (len == 0)
        throw new EmptyStackException();
    return element(len - 1);
}

3.查找

public synchronized int search(Object o) {
    int i = lastIndexOf(o);
    if (i >= 0) {
        return size() - 1;
    }
    return -1;
}

因爲Stack的特點是先進後出,所以查找的時候,返回的是最後一個出現的位置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章