在list、set、map中經常見到,用來限制class中的引數型別,確保class中引數的一致性。例如:listlist = new arraylist<>();建立了乙個內部引數是string型別的類,list中的操作物件都是string。>代表任意j**a型別,只有在不關心資料的具體型別下才使用萬用字元表示,但在一些情況下,傳入的資料進行強轉,但這樣不如直接傳入。
,還有 extends t>上界萬用字元和 super t>下界萬用字元。 extends t> 表示傳入資料值需要是t型別或t的子類, suprt t>表示傳入資料值需要是t型別或t的超類。
一般來說,>主要用於變數上,主要用於類或方法上。下圖中,list的元素型別為?,但往裡邊新增string時,會顯示出錯,因為list中的型別是乙個未知的j**a型別,不屬於任何類,所以往裡邊新增資料時會出錯。但可以從list中取出資料,取出的資料型別為object。
List 和 IList的區別
常見問題 ilist 本身只是乙個泛型介面,既然是介面當然不能例項化,只能用如下方法 ilist ilist11 new list 但是為什麼要這麼用呢,為什麼不直接用list list list11 new list 第一種用法有什麼好處。總結歸納一下 ilist 是在 net2.0裡面才支援的 ...
list和vector的區別
vector和built in陣列類似,它擁有一段連續的記憶體空間,並且起始位址不變,因此它能夠非常好的支援隨機訪問,即操作符,但由於它的記憶體空間是連續的,所以在中間進行插入和刪除會造成記憶體塊的拷貝。另外,當該陣列後的記憶體空間不夠時,需要重新申請一塊足夠大的記憶體並進行記憶體的拷貝。這些都大大...
list和set的區別
集合list作為佇列來使用,先存入的資料會被先取出 listlist new arraylist list.add 1 list.add 2 list.add 3 取出來的結果為 1,2,3 集合set作為堆疊來使用,先存入的資料會後取出 setset new hashset set.add 1 s...