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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© call 中级黑马   /  2014-7-1 15:00  /  1463 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

comparator里面没有compareTo     为什么么可以用这个方法?谢谢。

7 个回复

倒序浏览
本帖最后由 燿陚√揚葳 于 2014-7-2 11:57 编辑

你说的是下面这种情况吗如代码:
  1. class myCompare implements Comparator{
  2. public int compare(Object o1,Object o2){
  3. Student s1=(Student)o1;
  4. Student s2=(Student)o2;
  5. int num=s1.getName().compareTo(s2.getName());//是字符串的compareTo方法,String实现了Comparable
  6. if(num==0){
  7. //相当于new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));//是Integer的compareTo方法,Integer实现了Comparable

  8. // Integer i1=new Integer(s1.getAge());
  9. // Integer i2=new Integer(s2.getAge());
  10. // return i1.compareTo(i2);

  11. return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
  12. /*
  13. if(s1.getAge()>s2.getAge())
  14. return 1;
  15. if(s1.getAge()==s2.getAge())
  16. return 0;
  17. return -1;
  18. */
  19. }

  20. return num;
  21. }
  22. }
复制代码



回复 使用道具 举报
学习:)上
回复 使用道具 举报
燿陚√揚葳 发表于 2014-7-1 18:35
你说的是下面这种情况吗如代码:

是啊   为什么?
回复 使用道具 举报
看一楼的代码注释,调用的是String的CompareTo方法
回复 使用道具 举报
call 发表于 2014-7-2 07:29
是啊   为什么?

一个是调用String的compareTo方法,一个是Integer的compareTo方法,其实你可以看下Api文档java.lang包中的Comparable他有很多实现类String和Integer就是,在上面代码中就是在调用String和Integer的compareTo方法
回复 使用道具 举报
call 中级黑马 2014-7-3 07:33:04
7#
微笑女皇 发表于 2014-7-2 09:26
看一楼的代码注释,调用的是String的CompareTo方法

原来是这样 没注意额 :lol
回复 使用道具 举报
call 中级黑马 2014-7-3 07:34:22
8#
燿陚√揚葳 发表于 2014-7-2 12:02
一个是调用String的compareTo方法,一个是Integer的compareTo方法,其实你可以看下Api文档java.lang包中 ...

懂了 :lol非常感谢 TKS
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马