Re: [問題] Iterator語法問題

看板java作者 ( )時間14年前 (2011/06/06 10:48), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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
ArrayList 內部只能存物件,所以基本型別資料要先包成物件
06/06 11:11, 1F

06/06 11:21, , 2F
其實丟primitive進去它會自動轉成object型態
06/06 11:21, 2F

06/06 11:23, , 3F
所以我上面講的"這要看這個list是要做什麼用的"其實是錯的
06/06 11:23, 3F
※ 編輯: awert 來自: 114.35.186.241 (06/06 11:26)

06/06 11:26, , 4F
y
06/06 11:26, 4F

06/06 11:28, , 5F
補充:autoboxing/unboxing 是 Java 1.5 以後才有的功能
06/06 11:28, 5F

06/07 15:43, , 6F
解說真詳細!感謝 希望隨著寫越多可以越來越懂orz
06/07 15:43, 6F

06/08 10:50, , 7F
覺得兩位講解的很棒 推一下 解決我一些觀念上的迷失
06/08 10:50, 7F

06/10 22:46, , 8F
正解0-0
06/10 22:46, 8F
文章代碼(AID): #1Dx3_yUJ (java)
討論串 (同標題文章)
文章代碼(AID): #1Dx3_yUJ (java)