黑马程序员技术交流社区
标题:
treeSet如何实现排序
[打印本页]
作者:
lxsaks
时间:
2014-12-26 13:33
标题:
treeSet如何实现排序
昨天在做黑马程序员入学的基础测试题,创建一个Student类,有name ,age,score三个属性。创建5个student 对象,装入TreeSet中,要根据score排序。纠结
作者:
kakawin
时间:
2014-12-26 15:16
看视频吧,视频有讲的。
compareTo 和Comparator
作者:
I空空
时间:
2014-12-28 23:34
这个不难,看视频了就会
作者:
lpf870826
时间:
2014-12-31 09:29
我怎么不能发表提问??
作者:
周景新
时间:
2014-12-31 11:05
视频里面有,这个我刚看过
作者:
446111220
时间:
2014-12-31 11:30
其实很多看完视频也不懂,那就多做题吧,做多了自己就懂了,我是这么认为的。
作者:
小马范
时间:
2014-12-31 12:34
子集可以再Student类中实现Comprabale,重写Compare方法
作者:
被风扬起的沙
时间:
2014-12-31 12:48
等我下午学了就教教你:lol
作者:
xiao飞
时间:
2014-12-31 13:15
用Student类实现,Compnable 方法,复写里面的compTo方法就行,可以自己定义用什么样的方式排序
作者:
没说的话……
时间:
2014-12-31 13:33
public class StudentDemo {
public static void main(String[] args) throws IOException {
TreeSet<Student> ts = new TreeSet<Student>(new Comparator<Student>() {
public int compare(Student s1, Student s2) {
int num = s2.getSum() - s1.getSum();
int num2 = num == 0 ? s1.getChinese() - s2.getChinese() : num;
int num3 = num2 == 0 ? s1.getEnglish() - s2.getEnglish() : num2;
int num4 = num3 == 0 ? s1.getMath() - s2.getMath() : num3;
int num5 = num4 == 0 ? s1.getName().compareTo(s2.getName())
: num4;
return num5;
}
});
for (int x = 1; x <= 5; x++) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第" + x + "个的学习信息");
System.out.println("姓名:");
String name = sc.nextLine();
System.out.println("语文成绩:");
int chinese = sc.nextInt();
System.out.println("数学成绩:");
int math = sc.nextInt();
System.out.println("英语成绩:");
int english = sc.nextInt();
Student s = new Student();
s.setName(name);
s.setChinese(chinese);
s.setEnglish(english);
s.setMath(math);
ts.add(s);
}
BufferedWriter bw = new BufferedWriter(new FileWriter("Student.txt"));
bw.write("学生信息如下:");
bw.newLine();
bw.flush();
bw.write("姓名:语文成绩,英语成绩,数学成绩");
bw.newLine();
for (Student s : ts) {
StringBuilder sb = new StringBuilder();
sb.append(s.getName()).append(":").append(s.getChinese())
.append(",").append(s.getEnglish()).append(",")
.append(s.getMath());
bw.write(sb.toString());
bw.newLine();
bw.flush();
}
bw.close();
System.out.println("学生信息录取完毕");
}
}
复制代码
作者:
hello_csu
时间:
2014-12-31 13:51
有两种方式:对象本身的自然排序,或者实现容器的可比较性(comparator)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2