Java培訓(xùn)教程:什么是泛型Java

Java培訓(xùn)教程:什么是泛型Java

深圳達(dá)內(nèi)教育      2022-03-23 06:40:01     5

Java培訓(xùn)教程:什么是泛型Java, System.Collections.Generic命名空間包含了范型集合需要的類和接口;  我們?cè)趯懗绦虻臅r(shí)候, 經(jīng)常需要這種東西: 可變長(zhǎng)度的Arr

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

 


 

System.Collections.Generic命名空間包含了范型集合需要的類和接口;

  我們?cè)趯懗绦虻臅r(shí)候, 經(jīng)常需要這種東西: 可變長(zhǎng)度的Array, 比如說(shuō)一個(gè)string[]

  而事實(shí)上定義了一個(gè)string[]并初始化后那么它的長(zhǎng)度就固定了, Array根本做不到. 如果非要實(shí)現(xiàn)這種功能,那唯一合理的辦法只有定義一個(gè)ArrayList, 這個(gè)類似于vector類型的東西可以實(shí)現(xiàn)可變長(zhǎng)度的Array, 但是帶來(lái)幾個(gè)問題:

1. ArrayList里面操作的都是object類型, 這意味著如果我放一個(gè)string進(jìn)去, 再當(dāng)作int取出來(lái), 這在編譯階段是不會(huì)出錯(cuò)的, 而在運(yùn)行時(shí)才會(huì)提示轉(zhuǎn)換無(wú)效

2. 以object方式存儲(chǔ)時(shí), 需要裝箱和拆箱操作, 這些步驟會(huì)帶來(lái)額外的性能消耗 - 而沒法做到普通Array那樣直接

3. 如果要避免前兩個(gè)問題, 那么所有的需要強(qiáng)類型的集合類都需要分別定義, 比如XxxxCollection, 非常麻煩

  解決辦法:

Collection strCollection = new Collection();

strCollection.Add("a");strCollection.Add("b");.....

  這樣strCollection就是我們需要的集合. 范型使Add/Remove等操作全部都是類型安全的,以索引器訪問時(shí)也是類型安全的, 這在編譯階段(對(duì)于VS來(lái)說(shuō)可以包括編寫代碼的階段)就可以反映出來(lái).

  而性能方面, 這里根本就沒有裝箱/拆箱的操作, 所以比原有ArrayList方式性能更高. 也沒有像以前那樣聲明一個(gè)StringCollection之類的class, 代碼上也簡(jiǎn)潔的多.

 

 

 范型的特點(diǎn)

  增加了編譯時(shí)的類型檢查;

  減少了裝箱和拆箱操作;

  減少了運(yùn)行時(shí)的類型檢查;

Cast;

      以上就是深圳達(dá)內(nèi)教育Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java培訓(xùn)教程:什么是泛型Java”的內(nèi)容,希望對(duì)大家有幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。

       相關(guān)文章

零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習(xí)路線圖

你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎

一個(gè)標(biāo)準(zhǔn)的Java程序員如何進(jìn)階?

Java學(xué)習(xí)路線清單,快速進(jìn)階Java

Java編程初學(xué)者要如何進(jìn)階

 

Java培訓(xùn) Java培訓(xùn)教程 Java教程

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。