作者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