黑马程序员技术交流社区
标题:
看图说话. . 复写compareTo .
[打印本页]
作者:
王峰230321
时间:
2013-7-25 15:46
标题:
看图说话. . 复写compareTo .
本帖最后由 杨兴庭 于 2013-7-25 23:16 编辑
图片中第29行
int num = new Integer(thin.age)compareTo(new Integer(s.age)).
这句. 为什么要 new Integer ? 有点看不明白呢.
本身 在上文 age 不就是int 类型的吗. 直接拿来做自然顺序 不就行了吗. ?
是不是因为基础没记牢 . 又忘了什么地方. ?
3.jpg
(37.42 KB, 下载次数: 0)
下载附件
2013-7-25 15:42 上传
作者:
liuzhming
时间:
2013-7-25 16:42
本帖最后由 liuzhming 于 2013-7-25 16:46 编辑
因为它要装箱成Integer对象,使用Integer中的compareTo方法进行比较,该方法比较方式是,如果调用者的int值大于被调用者的int值,返回正数,相等返回0,否则返回负数。下面名字的比较使用了String的compareTo方法。
作者:
蚂蚁搬家
时间:
2013-7-25 16:48
本帖最后由 蚂蚁搬家 于 2013-7-25 16:51 编辑
自然顺序是按照compareTo方法的返回值来进行比较的,compareTo方法的返回值是int型的,
如果你直接用int age比较,你就不得不用如下写法:
if(this.age > s.age) return 3;
if(this.age = s.age) return 0;
return -3;
Integer类内部已经重写过compareTo方法了,你直接将int类型的age转换为Integer对象,然后调用Integer的compareTo方法进行比较不是更简单,程序更简洁嘛
作者:
冒烟的芒果
时间:
2013-7-25 18:35
因为int类型是基本类型,没有compareTo方法,只有转换成 Integer 类型才能调用compareTo方法啊
compareTo方法中的参数也是Integer类型的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2