作者PsMonkey (痞子軍團團長)
站內java
標題Re: [問題] class變數存取問題
時間Wed Mar 15 19:37:53 2006
※ 引述《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