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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yhnan 中级黑马   /  2013-3-21 18:32  /  2239 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 易贺男 于 2013-3-22 13:36 编辑

毕老师在第15天第二节的视频中讲的 有一节没看懂
class student implements comparable
{
  private string name;
  private int age;
  public void comparto(object obj);
   {
      ;省略
       ;省略
      if(this.name==s.name);
        {
          return this.name comparto( s.name);
         }
   }
}
我的疑问就是在比较name时的comparto是哪个comparto?如果是string类中的方法,那为什么既没有继承也没有接口那它是怎么就可以直接调用comparto方法的呢?

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-22 12:42

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1 鼓励鼓励

查看全部评分

5 个回复

正序浏览
java.lang
类 String
java.lang.Object
  java.lang.String
所有已实现的接口:
Serializable, CharSequence, Comparable<String>
回复 使用道具 举报
我手心里的宝 发表于 2013-3-21 18:42
你查一下Api文档,Stiring 里有compareTo 方法 name 是字符chuan
这里当然是调用的String 的compareTo 方法 ...

额。。那个。。。我找不到api文档  刚刚百度查了一下。说应该有个api文件夹可我怎么没找到呢。那个  这个 您能具体给指点下吗?怎么找api文档
回复 使用道具 举报
传入比较器比较:比较name的自然顺序,name相同的比较age的自然顺序

class TreeSetDemo {
        public static void main(String[] args) {
                TreeSet ts = new TreeSet(new MyCompare());
                ts.add(new Student("lisi02", 22));
                ts.add(new Student("lisi02", 21));
                ts.add(new Student("lisi007", 20));
                ts.add(new Student("lisi09", 19));
                ts.add(new Student("lisi06", 18));
                        ts.add(new Student("lisi007", 29));
                Iterator it = ts.iterator();
                while(it.hasNext())
                {
                        Student stu = (Student)it.next();
                        System.out.println(stu.getName()+"..."+stu.getAge());
                }
        }
}
class MyCompare implements Comparator
{
        @Override
        public int compare(Object o1, Object o2) {
                Student s1=(Student)o1;
                Student s2=(Student)o2;
                int num=s1.getName().compareTo(s2.getName());
                if(num==0){
                        return new Integer(s1.getAge()).compareTo(new Integer(s2.getAge()));
                }
                return num;
        }}

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

  1. import java.util.*;
  2. class TreeSetDemo
  3. {public static void main(String[] args)
  4.         {TreeSet ts=new TreeSet();
  5.          ts.add(new Student("lisi02",22));
  6.          ts.add(new Student("lisi007",20));
  7.          ts.add(new Student("lisi09",19));
  8.          ts.add(new Student("lisi08",19));
  9.           ts.add(new Student("lisi007",20));
  10.         // ts.add(new Student("lisi01",40));
  11.          
  12.          
  13.          Iterator it=ts.iterator();
  14.          while(it.hasNext())
  15.          {Student stu=(Student)it.next();
  16.                  sop(stu.getName()+".."+stu.getAge());
  17.          }
  18.         }
  19. public static void sop(Object obj)
  20.          {System.out.println(obj);
  21.          }
  22. }
  23. class Student implements Comparable
  24. {private String name;
  25. private int age;
  26. Student(String name,int age)
  27.         {this.name=name;
  28.          this.age=age;
  29.         }
  30.         public int compareTo(Object obj)[color=Red]/*调用String方法的compareTo方法,
  31. int compareTo(String anotherString),按字典顺序比较两个字符串,返回值是
  32. int,根据返回值的正负来判断哪个大哪个小
  33. */

  34.         {if(!(obj instanceof Student))
  35.                 throw new RuntimeException("不是学生对象");
  36.          Student s=(Student)obj;
  37.          
  38.          System.out.println(this.name+"..compareTo.."+s.name);
  39.          if(this.age>s.age)
  40.                  return 1;
  41.          if(this.age==s.age)
  42.                  { return this.name.compareTo(s.name);
  43.                  }
  44.          return -1;
  45.         }
  46.         public String getName()
  47.         {return name;}
  48.         public int getAge()
  49.         {return age;}

  50. }

  51. 希望能帮到楼主
复制代码

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
你查一下Api文档,Stiring 里有compareTo 方法 name 是字符chuan
这里当然是调用的String 的compareTo 方法了 呵呵
建议你看看文档

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马