數(shù)組列表和數(shù)組有什么區(qū)別?
- 數(shù)組即
Array類,數(shù)組列表即ArrayList類,兩者非常相似,不過(guò)Array類在System命名空間下,ArrayList類在System.Collections命名空間下。 - 數(shù)組在初始化時(shí)需要指定容量,并且指定后無(wú)法變更。而數(shù)組列表可以動(dòng)態(tài)地改變?nèi)萘浚愃朴?code>StringBuilder類。
棧集合和隊(duì)列集合有什么區(qū)別?
解答
- 棧集合和隊(duì)列集合都是
System.Collections命名空間下的集合類型。 - 棧集合類似于僅包含一個(gè)入口的容器,最先放進(jìn)去的內(nèi)容最后被取出,而最后放進(jìn)去的內(nèi)容最先被取出。
- 隊(duì)列集合類似于兩端分別為入口和出口的容器,最先進(jìn)去的內(nèi)容最先被取出,最后進(jìn)去的內(nèi)容最后被取出。
分析
- 大多數(shù)集合類型位于
System.Collections命名空間下,除了ArrayList和Stack類,Queue類也比較常用。 -
Slack類也被稱為棧集合類型,Queue類也被稱為棧隊(duì)列集合類型。 -
顧名思義,棧集合類型的子項(xiàng)保存方式為先入后出的方式,而隊(duì)列集合類型則相反,子項(xiàng)保存為先入先出方式。
棧集合和隊(duì)列集合的區(qū)別
泛型有什么優(yōu)勢(shì)?
- 泛型可以在程序代碼的類型定義或方法定義中以占位符的形式表示數(shù)據(jù)類型,而該數(shù)據(jù)類型直到使用時(shí)才決定。
- 所以泛型中的類型參數(shù)允許在開(kāi)發(fā)者不確定類型的情況下提供類型安全代碼,使程序編寫(xiě)更具效率。
簡(jiǎn)述泛型約束的作用
解答
- 定義泛型時(shí)可使用where關(guān)鍵字約束列表,以限制泛型類型參數(shù)的可選范圍,如果類型參數(shù)指定時(shí)超出約束的指定范圍,則編譯時(shí)將報(bào)錯(cuò)。
分析
- 泛型雖然給程序開(kāi)發(fā)帶來(lái)了很大的便利,提升了名序代碼的編寫(xiě)效率,但也存在被濫用的可能。
- 例如,有的程序中某些泛型類的類型占位符只允許某個(gè)范圍類型(如僅限制于值類型),而泛型默認(rèn)情況下允許使用任何類型將其實(shí)例化。
- 使用泛型約束可以基本解決這種問(wèn)題,泛型約束用于限制類型的可選范圍,約束以where開(kāi)頭,多個(gè)約束可以用空格分隔后一起使用。
