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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 何羡玉 于 2013-4-25 09:20 编辑

到底哪里错了啊

G0RUVM~5P%5U0OYA`[IAT}U.jpg (43.63 KB, 下载次数: 34)

G0RUVM~5P%5U0OYA`[IAT}U.jpg

点评

最好把代码贴出来,不要截图。谢谢  发表于 2013-4-24 22:22

评分

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

查看全部评分

9 个回复

正序浏览
何羡玉 发表于 2013-4-24 21:40
小寒哥 你存在的意义就是专门鄙视我的吧

嘿嘿。  你认识我不?```
猜猜哦```
回复 使用道具 举报
本帖最后由 何羡玉 于 2013-4-24 22:00 编辑


{:soso_e100:}

Q0}M{IVB7YQ[@RQW5%3S@GQ.jpg (37.15 KB, 下载次数: 20)

Q0}M{IVB7YQ[@RQW5%3S@GQ.jpg
回复 使用道具 举报
import java.util.Set;
import java.util.TreeSet;


public class Test {
        public static void main(String[] args) {
                Set<Student> set = new TreeSet<Student>();
                set.add(new Student("1",21));
                set.add(new Student("2",22));
                System.out.println(set);
        }
}
class Student implements Comparable<Student> {
        private String name;
        private int age;
       
        Student(String name,int age) {
                this.name = name;
                this.age = age;
        }
        public Student(String string) {
                // TODO Auto-generated constructor stub
        }
        public String getName() {
                return name;
        }
        public int getAge() {
                return age;
        }
        @Override
        public String toString() {
                return "Student [name=" + name + ", age=" + age + "]";
        }
       
        public int compareTo(Student stu) {
                return stu.getAge() - this.getAge();
        }
}
你的代买没写全,看看这个,没问题的,希望能帮到您

评分

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

查看全部评分

回复 使用道具 举报
何羡玉 发表于 2013-4-24 21:40
小寒哥 你存在的意义就是专门鄙视我的吧

我是发自肺腑的受教了...
骗你让怀化在阴天一个月
回复 使用道具 举报
本帖最后由 袁梦希 于 2013-4-24 21:51 编辑

楼主你好:
1.因为这道题你想让Student对象具备比较性,所以实现了Comparable接口,同时用该覆盖compareTo方法,
   覆盖的时候因为你不知道会传进来什么类型,所以我们传一个object类型的对象,当你对对象进行操作的时候,必须强制转型。
2.如果你想固定住类型,硬传Student对象类型,那么必须在Comparable接口后面加一个泛型,如:Comparable<Student>

代码如下:
  1. class Student implements Comparable<Student> {//让学生对象具备比较性
  2.         private String name;
  3.         private int age;
  4.         Student (String name, int age) {
  5.                 this.name = name;
  6.                 this.age = age;
  7.         }
  8.         public String getName() {
  9.                 return name;
  10.         }
  11.         public void setName(String name) {
  12.                 this.name = name;
  13.         }
  14.         public int getAge() {
  15.                 return age;
  16.         }
  17.         public void setAge(int age) {
  18.                 this.age = age;
  19.         }
  20.         @Override
  21.         public int compareTo(Student s) {//传一个学生对象
  22.                 // TODO Auto-generated method stub
  23.                 return 0;
  24.         }
复制代码

评分

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

查看全部评分

回复 使用道具 举报
刘胜寒 发表于 2013-4-24 21:38
.................受教了..

小寒哥 你存在的意义就是专门鄙视我的吧
回复 使用道具 举报
本帖最后由 刘胜寒 于 2013-4-24 21:39 编辑

.................受教了..
回复 使用道具 举报
本帖最后由 殇_心。 于 2013-4-24 21:40 编辑

大概是没复写compareTo方法。你的参数必须是Object。
或者楼上那样。泛型。

评分

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

查看全部评分

回复 使用道具 举报
  1. class Student implements Comparable<Student> {
  2.         private String name;
  3.         private int age;
  4.         Student (String name, int age) {
  5.                 this.name = name;
  6.                 this.age = age;
  7.         }
  8.         public String getName() {
  9.                 return name;
  10.         }
  11.         public void setName(String name) {
  12.                 this.name = name;
  13.         }
  14.         public int getAge() {
  15.                 return age;
  16.         }
  17.         public void setAge(int age) {
  18.                 this.age = age;
  19.         }
  20.         @Override
  21.         public int compareTo(Student o) {
  22.                 // TODO Auto-generated method stub
  23.                 return 0;
  24.         }
  25.        
  26. }
复制代码
Comparable<>后面要加泛型的, 这是jdk1.5后的新特性

评分

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

查看全部评分

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