15.泛型

泛型适袜,實(shí)現(xiàn)了參數(shù)化類型的概念寸士。

2.簡(jiǎn)單泛型

有些情況下我們確實(shí)希望容器能夠同時(shí)持有多種類型的對(duì)象。但通常而言牵祟,我們只使用容器來存儲(chǔ)一種類型的對(duì)象深夯。泛型的主要目的就是用來指定容器要持有什么類型的對(duì)象,而且由編譯器來保證類型的正確性。

現(xiàn)在創(chuàng)建TDemo時(shí)咕晋,必須指明想持有什么類型的對(duì)象雹拄,將其置于尖括號(hào)內(nèi)。就像main()方法掌呜,然后就只能在TDemo中存入該類型的對(duì)象滓玖。取出持有對(duì)象時(shí),自動(dòng)就是正確的類型质蕉。

public class TDemo<T> {

    private T a;

    public TDemo(T a) {
        this.a = a;
    }

    public void set(T a) {
        this.a = a;
    }

    public T get() {
        return a;
    }
    
}

傳統(tǒng)的下推堆棧

使用末端哨兵來判斷堆棧何時(shí)為空势篡。這個(gè)末端哨兵是在構(gòu)建LinkedStack時(shí)創(chuàng)建的。然后模暗,每調(diào)用一次push()方法禁悠,就會(huì)創(chuàng)建一個(gè)Node<T>對(duì)象,并將其鏈接到前一個(gè)Node<T>對(duì)象兑宇。當(dāng)你調(diào)用pop()方法時(shí)碍侦,總是返回top.item,然后丟棄當(dāng)前top所指的Node<T>,并將top轉(zhuǎn)移到下一個(gè)Node<T>,除非你已經(jīng)碰到了末端哨兵,這時(shí)候就不再移動(dòng)top了隶糕。如果已經(jīng)到了末端瓷产,客戶端調(diào)用pop()方法,只能得到null枚驻,說明堆棧已經(jīng)空了 濒旦。

public class LinkedStack<T> {
    private static class Node<U> {
        U item;
        Node<U> next;

        Node() {
            item = null;
            next = null;
        }

        Node(U item, Node<U> next) {
            this.item = item;
            this.next = next;
        }

        boolean end() {
            return item == null && next == null;
        }
    }

    private Node<T> top = new Node<T>(); // End sentinel

    public void push(T item) {
//        System.out.println("push() before : " + top.item);
        top = new Node<T>(item, top);
//        System.out.println("push() after : " + top.item);
        /**
         * 正序進(jìn)來 倒序出去
         * Node<T> top = new Node<T>(null) next為null item null
         * Node<T> top1 = new Node<T>(top) next為top item Phasers
         * Node<T> top2 = new Node<T>(top1) next為top1 item on
         * Node<T> top3 = new Node<T>(top2) next為top2 item stun
         */

    }

    public T pop() {
        T result = top.item;
        if (!top.end()) {
            top = top.next;
//            System.out.println("pop() : " + top.item);
        }
        return result;
    }

    public static void main(String[] args) {
        LinkedStack<String> lss = new LinkedStack<String>();
        for (String s : "Phasers on stun!".split(" "))
            lss.push(s);
        String s;
        while ((s = lss.pop()) != null)
            System.out.println(s);
    }
} /* Output:
stun!
on
Phasers
*///:~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市再登,隨后出現(xiàn)的幾起案子尔邓,更是在濱河造成了極大的恐慌,老刑警劉巖霎冯,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铃拇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡沈撞,警方通過查閱死者的電腦和手機(jī)慷荔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來缠俺,“玉大人显晶,你說我怎么就攤上這事∫际浚” “怎么了磷雇?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)躏救。 經(jīng)常有香客問我唯笙,道長(zhǎng)螟蒸,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任崩掘,我火速辦了婚禮七嫌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘苞慢。我一直安慰自己诵原,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布挽放。 她就那樣靜靜地躺著绍赛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪辑畦。 梳的紋絲不亂的頭發(fā)上吗蚌,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天,我揣著相機(jī)與錄音航闺,去河邊找鬼褪测。 笑死猴誊,一個(gè)胖子當(dāng)著我的面吹牛潦刃,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播懈叹,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼乖杠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了澄成?” 一聲冷哼從身側(cè)響起胧洒,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墨状,沒想到半個(gè)月后卫漫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肾砂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年列赎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镐确。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡包吝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出源葫,到底是詐尸還是另有隱情诗越,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布息堂,位于F島的核電站嚷狞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜床未,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一褂乍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧即硼,春花似錦逃片、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裂允,卻和暖如春损离,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绝编。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工僻澎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人十饥。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓窟勃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親逗堵。 傳聞我的和親對(duì)象是個(gè)殘疾皇子秉氧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

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

  • 泛型實(shí)現(xiàn)了參數(shù)化類型的概念,使代碼可以應(yīng)用于多種類型蜒秤。泛型術(shù)語的意思是適用于許多許多的類型汁咏。泛型在編程語言中出現(xiàn)時(shí)...
    Lemon_Home閱讀 250評(píng)論 0 0
  • 泛型:適用于更多的類型泛型的主要目的之一:用來指定容器要持有什么類型的對(duì)象,且由編譯器來保證類型的正確性元組:將一...
    lenny611閱讀 202評(píng)論 0 0
  • 官方文檔: http://kotlinlang.org/docs/reference/generics.html ...
    lioilwin閱讀 572評(píng)論 0 0
  • 1.泛型類 2.泛型方法 3.擦除
    我想做個(gè)程序員閱讀 228評(píng)論 0 0
  • “泛型”這個(gè)術(shù)語的意思是:"適用于許多許多的類型”作媚。如何做到這一點(diǎn)呢攘滩,正是通過解耦類或方法與所使用的類型之間的約束...
    王偵閱讀 1,138評(píng)論 0 0