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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-21 11:35  /  1740 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
class Student implements Comparable<Student>
{
        private String name;
        private int age;
        private double fen;
        Student (String name,int age,double fen)
                {
                this.name=name;this.age=age;this.fen=fen;
               
               
                }
                public void setName(String name)
                {
                        this.name=name;
                }
                public void setAge(int age)
                {
                        this.age=age;
                }
            public void setFen(double fen)
                {
                        this.fen=fen;
                }
                public String getName()
                {
                        return name;
                }
                public  int getAge()
                {
                        return age;
                }
                public double getFen()
                {
                return fen;
                }
                public int compareTO(Student s)
                {
                        int num=new Integer(this.getAge()).compareTo(new Integer(s.getAge()));

                        if (num==0)
                        return this.getName().compareTo(s.getName());

                                return num;
                }
                public int hashCode()
                {
                        return name.hashCode()+age*37;
                }
                public boolean equals(Object obj)
                {
                        if (!(obj instanceof Student))
                             throw new ClassCastException("类型不匹配");
                                Student s=(Student)obj;
                        return this.name.equals( s.name)&&this.age==s.age;
                       
                }
       
       
}

class Student1
{
        public static void main(String[] args)
        {
                TreeSet<Student> ts=new TreeSet<Student>();//是不是这里出现问题了啊 ??

                ts.add(new Student("wangwu",20,78));
                ts.add(new Student("zhangsan",20,98));
                ts.add(new Student("lisi",20,80));
                ts.add(new Student("zhaoliu",20,60));
                ts.add(new Student("zhuqi",20,60 ));

                Iterator<Student> it=ts.iterator();

                while (it.hasNext())
                {
                        Student s=it.next();
                        System.out.println(s.getName()+" ... "+s.getAge()+"..."+s.getFen());
                }

        }
}
错误  疑惑求指点
Noname2.java:2: Student 不是抽象的,并且未覆盖 java.lang.Comparable 中的抽象方法
compareTo(Student)
class Student implements Comparable<Student>
^
1 错误

8 个回复

倒序浏览
把你的compareTO改成 compareTo就可以了
回复 使用道具 举报
我试了一大会没有试出来。同意楼上的。哈哈。吸取教训了。呵呵。
回复 使用道具 举报
哈哈我找了半天 谢谢啊
回复 使用道具 举报
那怎么会少了zhuqi那 什么原因啊
zhaoliu ... 20...60.0
wangwu ... 20...78.0
lisi ... 20...80.0
zhangsan ... 20...98.0
回复 使用道具 举报
我怎么只打出一个student啊
回复 使用道具 举报
该为覆盖compareTo方法,运行了一下没问题,又改了一下年龄,再运行也没问题。
import java.util.*;
class Student implements Comparable<Student>
{
         private String name;
         private int age;
         private double fen;
         Student (String name,int age,double fen)
               {
                 this.name=name;this.age=age;this.fen=fen;
                }
                 public void setName(String name)
                 {
                         this.name=name;
                 }
                 public void setAge(int age)
                 {
                         this.age=age;
                 }
                 public void setFen(double fen)
                 {
                         this.fen=fen;
                 }
                 public String getName()
                 {
                         return name;
                 }
                 public  int getAge()
                 {
                         return age;
                 }
                 public double getFen()
                 {
                 return fen;
                 }
                 public int compareTo(Student s)//这个地方改成覆盖compareTo方法
                 {
                        int num=new Integer(this.getAge()).compareTo(new Integer(s.getAge()));

                        if (num==0)
                                 return this.getName().compareTo(s.getName());

                        return num;
                 }
                 public int hashCode()
                 {
                         return name.hashCode()+age*37;
                 }
                 public boolean equals(Object obj)
                 {
                         if (!(obj instanceof Student))
                              throw new ClassCastException("类型不匹配");
                                 Student s=(Student)obj;
                         return this.name.equals( s.name)&&this.age==s.age;
                        
                }
}

class Student1
{
          public static void main(String[] args)
          {
                 TreeSet<Student> ts=new TreeSet<Student>();
                  ts.add(new Student("wangwu",20,78));
                  ts.add(new Student("zhangsan",28,98));
                  ts.add(new Student("lisi",20,80));
                  ts.add(new Student("zhaoliu",20,60));
                  ts.add(new Student("zhuqi",19,60 ));
  
                 Iterator<Student> it=ts.iterator();
  
                 while (it.hasNext())
                  {
                          Student s=it.next();
                          System.out.println(s.getName()+" ... "+s.getAge()+"..."+s.getFen());
                  }
  
         }
  }

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