【Java集合源碼剖析1.4】Stack源碼剖析(API23)

Vector繼承自Vector颠锉,Stack是棧己儒。它的特性是:先進后出(FILO, First In Last Out)记焊。
它常用的API如下:

             boolean       empty()
synchronized E             peek()
synchronized E             pop()
             E             push(E object)
synchronized int           search(Object o)

1.入棧操作

 public E push(E item) {
        addElement(item);   //  調(diào)用父類的方法 芳杏,在最后 一個位置添加
        return item;
    }

2.出棧操作

 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);
    }

3.search其實就是和父類的lastIndexOf 方法 舔琅。

  public synchronized int search(Object o) {
        int i = lastIndexOf(o);

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

總結(jié):
(01) Stack實際上也是通過數(shù)組去實現(xiàn)的。
執(zhí)行push時(即沙绝,將元素推入棧中)搏明,是通過將元素追加的數(shù)組的末尾中鼠锈。
執(zhí)行peek時(即闪檬,取出棧頂元素,不執(zhí)行刪除)购笆,是返回數(shù)組末尾的元素粗悯。
執(zhí)行pop時(即,取出棧頂元素同欠,并將該元素從棧中刪除)样傍,是取出數(shù)組末尾的元素,然后將該元素從數(shù)組中刪除铺遂。
(02) Stack繼承于Vector衫哥,意味著Vector擁有的屬性和功能,Stack都擁有襟锐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撤逢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子粮坞,更是在濱河造成了極大的恐慌蚊荣,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莫杈,死亡現(xiàn)場離奇詭異互例,居然都是意外死亡,警方通過查閱死者的電腦和手機筝闹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門媳叨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人关顷,你說我怎么就攤上這事糊秆。” “怎么了解寝?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵扩然,是天一觀的道長。 經(jīng)常有香客問我聋伦,道長夫偶,這世上最難降的妖魔是什么界睁? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮兵拢,結(jié)果婚禮上翻斟,老公的妹妹穿的比我還像新娘。我一直安慰自己说铃,他們只是感情好访惜,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腻扇,像睡著了一般债热。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上幼苛,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天窒篱,我揣著相機與錄音,去河邊找鬼舶沿。 笑死墙杯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的括荡。 我是一名探鬼主播高镐,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼畸冲!你這毒婦竟也來了嫉髓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤召夹,失蹤者是張志新(化名)和其女友劉穎岩喷,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體监憎,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡纱意,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了鲸阔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偷霉。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖褐筛,靈堂內(nèi)的尸體忽然破棺而出类少,到底是詐尸還是另有隱情,我是刑警寧澤渔扎,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布硫狞,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏残吩。R本人自食惡果不足惜财忽,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望泣侮。 院中可真熱鬧即彪,春花似錦、人聲如沸活尊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛹锰。三九已至深胳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宁仔,已是汗流浹背稠屠。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留翎苫,地道東北人。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓榨了,卻偏偏與公主長得像煎谍,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子龙屉,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容