黑马程序员技术交流社区
标题:
我的基础题第十题,弄不懂了
[打印本页]
作者:
msyx9871453
时间:
2015-3-11 11:15
标题:
我的基础题第十题,弄不懂了
声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)。
我的基础第十题,怎么也弄不明白了,希望会的大神帮帮忙。谢谢
public class Test10 {
public static void main(String[] args) {
TreeSet<Student> treeSet = new TreeSet<Student>();
Student s1 = new Student("s1", 20, 80);
Student s2 = new Student("s2", 20, 80);
Student s3 = new Student("s3", 20, 90);
Student s4 = new Student("s4", 20, 70);
Student s5 = new Student("s5", 20, 60);
treeSet.add(s1);
treeSet.add(s2);
treeSet.add(s3);
treeSet.add(s4);
treeSet.add(s5);
/*
Iterator iterator = treeSet.iterator();
while(iterator.hasNext()){
Student student = (Student) iterator.next();
System.out.println(student.getScore());
}*/
for(Student student : treeSet){
System.out.println(student.getScore());
}
}
}
作者:
1021361407
时间:
2015-3-11 12:00
这个是我当时做得代码
/*
* 10、声明类Student,包含3个成员变量:name、age、score,创建5个对象装入TreeSet,按照成绩排序输出结果(考虑成绩相同的问题)
*/
package com.itheima;
import java.util.*;
public class Test10 {
public static void main(String[] args){
TreeSet ts=new TreeSet();
ts.add(new Student("张三",23,90));
ts.add(new Student("李四",23,80));
ts.add(new Student("王五",22,80));
ts.add(new Student("赵六",22,80));
ts.add(new Student("钱七",22,80));
System.out.println(ts);
}
}
/*
* 学生类
*/
class Student implements Comparable{
private String name;
private int age;
private double score;
public String getName(){
return name;
}
public int getAge(){
return age;
}
public double getscore(){
return score;
}
Student(String name,int age,double score){
this.name=name;
this.age=age;
this.score=score;
}
@Override
public int compareTo(Object obj) {
if (!(obj instanceof Student))
throw new RuntimeException("不是学生类型");
Student s = (Student) obj;
// 按成绩排序,成绩一样按名字
if (this.score >s.score)return -1;
else if(this.score<s.score)return 1;
else if(this.name.compareTo(s.name)>0) return 1;
else if(this.name.compareTo(s.name)<0)return -1;
return 0;
}
public String toString(){
return "姓名:"+this.name+"成绩:"+this.score+"年龄:"+this.age;
}
}
复制代码
作者:
msyx9871453
时间:
2015-3-11 13:19
谢谢了。
作者:
路文龙
时间:
2015-3-11 16:39
思路:实现comparable接口,覆盖public int compareTo(Object obj) 方法,在该方法中定义自己的排序规则。
作者:
android-liu
时间:
2015-3-11 16:52
这个很简单,这道题主要还是考TreeSet集合的特性:ThreeSet集合的数据结构是二叉数结构,在排列前,你必须使学生对象具有比较性,去实现 comparer接口,然后在重写compareTo方法,以学生成绩为判断依据
作者:
太阳
时间:
2015-3-11 17:27
考的这么难啊,表示看不懂
作者:
弹剑高歌踏浪行
时间:
2015-3-11 17:35
基础题真心难 我现在看到接口 才会做两题
作者:
班凤飞
时间:
2015-3-11 18:46
因为题目里面说了要考虑成绩相同的问题,所以最好是用比较类来做
作者:
我只追求完美
时间:
2015-3-11 23:28
小菜鸟表示看不懂!
作者:
执念
时间:
2015-3-11 23:58
题目还能叫别人帮忙?
作者:
冯林01
时间:
2015-3-12 10:06
表示没看懂,老老实实看视频
作者:
埗箬
时间:
2015-3-12 10:34
不用着急啊,有没有时间限制的。
作者:
msyx9871453
时间:
2015-3-12 13:09
太阳 发表于 2015-3-11 17:27
考的这么难啊,表示看不懂
有简单的 这是最后一道,别灰心
作者:
彭春晓
时间:
2015-3-12 17:52
这个题目和我上次的一样
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2