更新時間:2019-12-13 11:54:47 來源:動力節點 瀏覽2695次
System.Collections.Generic命名空間包含了范型集合需要的類和接口;
我們在寫程序的時候, 經常需要這種東西: 可變長度的Array, 比如說一個string[]
而事實上定義了一個string[]并初始化后那么它的長度就固定了, Array根本做不到. 如果非要實現這種功能,那唯一合理的辦法只有定義一個ArrayList, 這個類似于vector類型的東西可以實現可變長度的Array, 但是帶來幾個問題:
1. ArrayList里面操作的都是object類型, 這意味著如果我放一個string進去, 再當作int取出來, 這在編譯階段是不會出錯的, 而在運行時才會提示轉換無效
2. 以object方式存儲時, 需要裝箱和拆箱操作, 這些步驟會帶來額外的性能消耗 - 而沒法做到普通Array那樣直接
3. 如果要避免前兩個問題, 那么所有的需要強類型的集合類都需要分別定義, 比如XxxxCollection, 非常麻煩
解決辦法:
Collection strCollection = new Collection();
strCollection.Add("a");strCollection.Add("b");.....
這樣strCollection就是我們需要的集合. 范型使Add/Remove等操作全部都是類型安全的,以索引器訪問時也是類型安全的, 這在編譯階段(對于VS來說可以包括編寫代碼的階段)就可以反映出來.
而性能方面, 這里根本就沒有裝箱/拆箱的操作, 所以比原有ArrayList方式性能更高. 也沒有像以前那樣聲明一個StringCollection之類的class, 代碼上也簡潔的多.
范型的特點
增加了編譯時的類型檢查;
減少了裝箱和拆箱操作;
減少了運行時的類型檢查;
Cast;
以上就是動力節點Java培訓機構小編介紹的“Java培訓教程:什么是泛型Java”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關文章
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習