Re: [問題] class變數存取問題

看板java作者 (痞子軍團團長)時間19年前 (2006/03/15 18:34), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串12/17 (看更多)
※ 引述《TonyQ (骨頭)》之銘言: : ※ 引述《PsMonkey (痞子軍團團長)》之銘言: : 是啊 是這樣沒錯 : 那我們的討論差不多就可以到這裡打個段落了吧XD 可是你沒有回答我關於這段的問題 //引言開始 : Comparator主要是給容器用的吧 (也就是List) : 而Comparable應該是給被容納的東西去implement的吧 (也就是object) //引言結束 我覺得這樣子的觀念不對,所以才會寫上一篇文章 然後你回文章的時候就一路說 "對~ 就是這樣子" 然後就說結束討論 我覺得很 Orz 阿 : ---------- : 順便再提一件跟Java Collection有關, : 很有趣的事情,我用簡短的程式碼舉例,XD : 我先寫一個非implement Comparable的簡單物件。 : 假設我的目標是要把Person照著age排序並置入Set。 : class Person{ : int age; : Person(int in){ : age=in; : } : } : ----------------------------------------------------------------- : TreeSet<Person> ts=new TreeSet<Person>(); : 因為TreeSet是會把資料排序的容器,放資料的時候就會進行比較的動作。 : 此時給它下列的敘述, : ts.add(new Person(5)); //此時只有一筆資料 不需比較 : ts.add(new Person(2)); : //此時因為找不到compare,所以產生java.lang.ClassCastException: : ----------------------------------------------------------------- : <解一> : 這是因為Person並沒有implement Comparable的關係,如果 : Person也去implement Comparable就可以解決了。 : 比方說在Person內加上類似這段程式碼這樣的東西就ok了 挑語病... 這邊應該要講: Person 去 implement Comparable 然後加上類似這段程式碼就 OK 了 不然,怎麼覺得兩句沒有直接關係 : TreeSet Default的Comparator規則到底是甚麼啊 : 可惡 剛剛翻半天文件 翻不到只好蠻力硬幹XD default? 就是物件本身的 Comparable 的 compareTo 阿... 不然怎麼會出現 ClassCastException? -- 侃侃長論鮮窒礙 網站:http://www.psmonkey.idv.tw 眾目睽睽無心顫 個人版:telnet://legend.twbbs.org 煢居少聊常人事 殺頭容易告白難 歡迎參觀 Java 版(@ptt.cc)精華區 \囧/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.204.16.17
文章代碼(AID): #145-sc4v (java)
討論串 (同標題文章)
文章代碼(AID): #145-sc4v (java)