黑马程序员技术交流社区
标题:
compareTo 接口的实现
[打印本页]
作者:
小飞龙
时间:
2012-7-19 16:17
标题:
compareTo 接口的实现
public int compareTo(Object o){
PersonTwo p=(PersonTwo)o;
int lastCmp=lastName.compareTo(p.lastName); //这里为什么要定义一个lastCmp呢
return (
lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));//这句完全不理
解
哪位大哥能不能帮我翻译一下这段代码 看不太懂。
作者:
王龙彪
时间:
2012-7-19 16:29
int lastCmp=lastName.compareTo(p.lastName); //这里为什么要定义一个lastCmp呢
复制代码
因为比较肯定是两个对象或两个对象的属性才能比较嘛
后面那个就是被比较的对象属性
lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));//这句完全不理
复制代码
这是一个三元表达式,就相当于:
if(lastCmp != 0)
return lastCmp;
else
return firstName.compareTo(p.firstName));
复制代码
作者:
rslheima
时间:
2012-7-19 16:35
public int compareTo(Object o){
PersonTwo p=(PersonTwo)o;
int lastCmp=lastName.compareTo(p.lastName); //首先compareTo()返回的是个整型数,暂存到lastCmp中
return (
lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));//这句话:如果lastCmp不等于零,返回lastCmp ,等于零,返回firstName的比较结果
总之你这段代码的意思就是
先根据名字比较,进行排序
如果名字相同,就和姓名比较,根据姓名排序
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2