A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yaowenjiang 黑马帝   /  2011-12-10 21:50  /  2826 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yaowenjiang 于 2011-12-10 22:41 编辑

public int compareTo(Object o){
                PersonTwo p=(PersonTwo)o;
                int lastCmp=lastName.compareTo(p.lastName);  //这里为什么要定义一个lastCmp呢
                return (
                        lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));//这句完全不理解
哪位大哥能不能帮我翻译一下这段代码   看不太懂。。感谢您了

3 个回复

倒序浏览
前面的没看懂
这句return ( lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));
相当于lastCmp !=0         return lastCmp;
         lastCmp ==0      return firstName.compareTo(p.firstName);
回复 使用道具 举报 1 0
1.实现Comparable接口,重写compareTo()方法,由自己定义比较细节。
2.compareTo()需要返回int型值,
int lastCmp=lastName.compareTo(p.lastName);
//比较lastName是否相同,若相同则lastCom=0;若小于p的lastName则lastCom=负整数;若大于p的lastName则lastCom=正整数;
lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));
//如果lastCmp不等于0(lastName不同,说明他们的名字肯定不一样),即可返回lastCmp的值(负整数或负整数);如果lastCmp等于0,还需要比较一下Firstname(只有lastnaem和Firstname都相等,才说明他们的名字是一样的),比较方法和lastName一样。
[个人理解,供参考]
回复 使用道具 举报
实现Comparable接口,重写compareTo()方法,由自己定义比较细节。
2.compareTo()需要返回int型值,
int lastCmp=lastName.compareTo(p.lastName);
//比较lastName是否相同,若相同则lastCom=0;若小于p的lastName则lastCom=负整数;若大于p的lastName则lastCom=正整数;
lastCmp!=0?lastCmp:firstName.compareTo(p.firstName));
//如果lastCmp不等于0(lastName不同,说明他们的名字肯定不一样),即可返回lastCmp的值(负整数或负整数);如果lastCmp等于0,还需要比较一下Firstname(只有lastnaem和Firstname都相等,才说明他们的名字是一样的),比较方法和lastName一样。
[个人理解,供参考]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马