※ 引述《Nozaki (NA)》之銘言:
: 三個很基本的語法問題一直很困惑我...請大家解惑一下 感謝orz
: List set =new ArrayList();->為什麼不用ArrayList set=new ArrayList();就好?
兩種方法其實都是正確的,
只是說用不到一些比較特別method時,
比較不建議去把前面interface給寫死。
: set.add(new Integer(3));->為什麼不用set.add(3);就好?
new Integer(3)是Object
直接用3是Primitive
list是存取object的,用primitive type丟進去裡面
它也會自動轉成object後再存進去
因此其實是同一種意思
(感謝uziel指正)
: Iterator it =set iterator();->為什麼建立一個iterator的物件是這樣寫
: 而不是一般的 iterator it=new iterator();阿?
我想上面應該打錯了,是set.iterator()
你有動手試的話會發現Iterator是一個interface,不是物件。
所以當然不能單純地 new Iterator()就拿來用
要使用interface必需要用實作過的,
以上面舉的例子來講,
list set是一個 ArrayList
ArrayList也是繼承/實作一堆東西,其中有一項interface叫Collection
Collection又繼承Iterable
Iterable這個interface,
裡面定義了所有使用這個interface的人都要實作一個iterator出來
因此 Iterator it = set.iterator()
這個意思是指使用set這個list實作出來的iterator object
最後,
List就叫list就好,叫什麼set
害我寫set是一個ArrayList都覺得怪怪的 qq
--
We who cut mere stones must always be envisioning cathedrals.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.35.186.241
※ 編輯: awert 來自: 114.35.186.241 (06/06 10:49)
→
06/06 11:11, , 1F
06/06 11:11, 1F
→
06/06 11:21, , 2F
06/06 11:21, 2F
→
06/06 11:23, , 3F
06/06 11:23, 3F
※ 編輯: awert 來自: 114.35.186.241 (06/06 11:26)
→
06/06 11:26, , 4F
06/06 11:26, 4F
→
06/06 11:28, , 5F
06/06 11:28, 5F
推
06/07 15:43, , 6F
06/07 15:43, 6F
推
06/08 10:50, , 7F
06/08 10:50, 7F
推
06/10 22:46, , 8F
06/10 22:46, 8F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):