1樓:小嫣老師
list通常指的是泛型的一種情況,而list<?>的使用是在不確定返回的集合泛型是什麼型別的情況下所採用的一種方式。?表示是無限制的萬用字元。
引數是可以任何的型別。listlist =new list()。
泛型的定義主要有以下兩種:
1、在程式編碼中一些包含型別引數的型別,也就是說泛型的引數只可以代表類,不能代表個別物件。(這是當今較常見的定義)
2、在程式編碼中一些包含引數的類。其引數可以代表類或物件等等。(人們大多把這稱作模板)不論使用哪個定義,泛型的引數在真正使用泛型時都必須作出指明。
擴充套件資料
泛型的一個附帶好處是,消除源**中的許多強制型別轉換。這使得**更加可讀,並且減少了出錯機會。
儘管減少強制型別轉換可以降低使用泛型類的**的羅嗦程度,但是宣告泛型變數會帶來相應的羅嗦。比較下面兩個**例子。
泛型的一個附帶好處是,消除源**中的許多強制型別轉換。這使得**更加可讀,並且減少了出錯機會。儘管減少強制型別轉換可以降低使用泛型類的**的羅嗦程度,但是宣告泛型變數會帶來相應的羅嗦。
比較下面兩個**例子。
該**不使用泛型:
list li = new arraylist();
li.put(new integer(3));
integer i = (integer) li.get(0);
該**使用泛型:
listli = new arraylist();
li.put(new integer(3));
integer i = li.get(0)。
2樓:
t 代表某一型別 ? 代表任意型別。。
t因為代表是某一確定型別。。所以你可以使用它。。
比如你有個list型別的變數tlist 你可以用t t = tlist.get(1);也可以用add但是?可以是任意型別。。
你不能進行那種與他裡面裝的東西的型別有關的操作。。比如add get等。。其中get只能複製給object型別。
add甚至連object都不能用。。因為他可以是任意型別。。編譯器不能確定他是什麼型別。。
但前者編譯器知道他的型別是t。。
我說的是呼叫list裡的get 和add方法
3樓:匿名使用者
沒什麼區別,list<?>應該是出現在講解的示例裡吧與標準的list,?和t都是用來標識一個未定義型別的佔位符,是jdk1.5出來的泛型,其中包括泛型方法、泛型類、泛型介面等
list換成 listlist = new arraylist();
這個時候list集合就只能裝student型別的值了,你就比喻成家裡的裝物箱,原本裝物箱啥東西都可以往裡放,裡邊的東西裝雜了,你去找或取就不方便;這時你就把裝物箱分類進行裝不同的物品,你想想分類後你要找物品不就容易多啦
4樓:匿名使用者
應該沒有list<?>的,有list<? extends t>這樣的
list的意思是list的元素都是t這個型別的,list<? extends t>的意思是list的元素是t或者t的子類
list
5樓:
是的,list中的t就是泛型,就是放你要放入list中的資料型別;
比如:listls=new arraylist();
ls 中放的就是persion物件!
6樓:
t指泛型,在使用時把t替換成需要的型別即可
list
7樓:匿名使用者
這麼理解泛型吧,應該知道函式在基本資料型別上典型的多型吧,比如math.abs。
泛型等於是一種資料結構或一個函式可用在多種型別的物件上。
如果在呼叫或宣告建立一個泛型函式或結構時指定了型別,那麼後續操作產生的結果將直接是你指定的型別。不必再進行轉型操作了。
j**a list
8樓:不落葉的柏樹
沒有區別,t和e都是泛型變數名,你可以用任意合法的名字命名,比如k,abc,abc都是合法的。
9樓:匿名使用者
list表示 集合裡 是 t類的例項
list表示 集合裡 是 e類的例項
list<?> 表示 集合裡的物件型別不確定,未指定list 同 list<?>
泛型的作用:
1::: listlist=new arraylist();
t t=list.get(0);
2:::list list=new arraylist();
t t=(t)list.get(0);
相信你已經看出:用泛型只是確定了集合內的元素的型別,取出來時已經不再需要強轉
10樓:匿名使用者
就像陣列 string 和 int ,沒什麼不一樣吧
j**a 中 list<?> 的<?> 是什麼意思?
11樓:手機使用者
範型list<?> 這樣去定義的話和list是一個意思,這樣就可以避免到時候從list中取值使用的時候出現執行時異常,加上範型定義之後,在往list中新增元素的時候就必須是定義的元素,否則編譯會報錯,例如定義lista=new arraylist();這樣的話,a中就只能新增字串,其它型別新增不了,特別作用就是避免執行時異常
12樓:匿名使用者
通俗點講就是
比如 list
list只能放string型別的東西
放別的東西貌似會出錯
13樓:匿名使用者
?代表任何型別 而且沒有警告了
14樓:匿名使用者
?號是萬用字元的意思。可以轉換
15樓:貫朝嚴水
list<?>
中?代表任意類,這是泛型的表示,就是在list定義的時候就知道list中要存放什麼型別的物件,例如list
list
=new
arraylist();list中只能存放string型別的物件
16樓:琦樂天書貞
list指的是集合.<>是泛型,裡面指定了這個集合中存放的是什麼資料.
比如有一個學生類student,student裡面包含了學生的一些資訊.這樣每一個student物件就代表了一個學生.此時list就代表這個集合中存放了很多個學生物件,這個集合就像一個班級一樣.
17樓:出冷珍蹉修
1、集合可以有list,vector等,其實map也是一個集合2、這些集合有啥用呢,就好比你有一堆資料要存:
[name='張三'
,age=20,
address='北京']
[name='李四'
,age=15,
address='湖南']
[name='王五'
,age=18,
address='甘肅']等等,
這樣一條一條的資料你就能夠用集合來儲存起來,放到一條集合中去3、例如用list來儲存,儲存形式就如下:
list=;
這樣的形式了,然後取值的時候你就可以根據list.get(i)來分別取值了。
4、如果要取到每一條裡面的屬性,那麼可以配合map或者儲存的是實體類物件,來分別取值就對了,非常的簡單且實用
這些符號分別代表什么,這些符號分別代表什麼?
網路符號語言綜合教程 t t 流眼淚的樣子 痛哭,十分傷心 睜著眼睛看著你 俏皮地向對方眨眼睛 o 陶醉 p 吐舌頭 高度近視 醉了 o o 盯著.o 扮鬼臉,或者很得意,很自豪 o o 吃驚 神祕的笑容 快樂的人兒 裂開嘴輕聲笑 v 很憨地笑 v 成功了,高興地笑,在用勝利的手勢 歡喜 o 歡喜 ...
每個星座都代表著什麼,十二個星座分別代表什麼?
雨一婷 在占星學上,黃道十二星座是宇宙方位的代名詞。黃道十二星座代表了12種基本性格原型,一個人出生時,各星體落入黃道上的位置,正是說明著一個人的先天性格及天賦。黃道十二星座象徵心理層面,反映出一個人行為的表現的方式。於是將黃道分成十二個星座,稱為黃道12星座。依次為白羊座 金牛座 雙子座 巨蟹座 ...
結構體中在大括號外的變數和指標分別代表什麼?同時那個指標這麼用是什麼意思
typedef struct bitnode 是否忘記打typedef?要不你底下的bitree t是不能通過編譯的!因為按你的寫法bitree是一個變數而不是一個變數型別,另外請去掉兩個圓括號,還有為防止衝突,前邊加下劃線 bitnode,bitree 意思是定義一個結構體型別 用作連結串列的一個...