System.Collections.Generic命名空間包含了范型集合需要的類和接口;
我們在寫程序的時候, 經(jīng)常需要這種東西: 可變長度的Array, 比如說一個string[]
而事實上定義了一個string[]并初始化后那么它的長度就固定了, Array根本做不到. 如果非要實現(xiàn)這種功能,那唯一合理的辦法只有定義一個ArrayList, 這個類似于vector類型的東西可以實現(xiàn)可變長度的Array, 但是帶來幾個問題:
1. ArrayList里面操作的都是object類型, 這意味著如果我放一個string進去, 再當作int取出來, 這在編譯階段是不會出錯的, 而在運行時才會提示轉(zhuǎn)換無效
2. 以object方式存儲時, 需要裝箱和拆箱操作, 這些步驟會帶來額外的性能消耗 - 而沒法做到普通Array那樣直接
3. 如果要避免前兩個問題, 那么所有的需要強類型的集合類都需要分別定義, 比如XxxxCollection, 非常麻煩
解決辦法:
Collection strCollection = new Collection();
strCollection.Add("a");strCollection.Add("b");.....
這樣strCollection就是我們需要的集合. 范型使Add/Remove等操作全部都是類型安全的,以索引器訪問時也是類型安全的, 這在編譯階段(對于VS來說可以包括編寫代碼的階段)就可以反映出來.
而性能方面, 這里根本就沒有裝箱/拆箱的操作, 所以比原有ArrayList方式性能更高. 也沒有像以前那樣聲明一個StringCollection之類的class, 代碼上也簡潔的多.
范型的特點
增加了編譯時的類型檢查;
減少了裝箱和拆箱操作;
減少了運行時的類型檢查;
Cast;
以上就是深圳達內(nèi)教育Java培訓(xùn)機構(gòu)小編介紹的“Java培訓(xùn)教程:什么是泛型Java”的內(nèi)容,希望對大家有幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)文章
零基礎(chǔ)怎么自學(xué)Java,完整版Java學(xué)習路線圖
你還在糾結(jié)學(xué)Java,是自學(xué)還是去培訓(xùn)班嗎
一個標準的Java程序員如何進階?
Java學(xué)習路線清單,快速進階Java
Java編程初學(xué)者要如何進階
Java培訓(xùn) Java培訓(xùn)教程 Java教程