用优先级队列保证,实现成绩从大到小排列
import java.util.concurrent.PriorityBlockingQueue;
public class StudentPriorityBlockingQueue {
public static void main(String[] args) throws Exception {
PriorityBlockingQueue<Student> q = new PriorityBlockingQueue<Student>();
Student t1 = new Student();
t1.setscore(83);
t1.setName("zhangsan");
Student t2 = new Student();
t2.setscore(90);
t2.setName("lisi");
Student t3 = new Student();
t3.setscore(87);
t3.setName("wangwu");
Student t4 = new Student();
t4.setscore(99);
t4.setName("maliu");
q.add(t1);
q.add(t2);
q.add(t3);
q.add(t4);
System.out.println("学生:" + q);
System.out.println(q.take().getscore());
System.out.println("学生:" + q);
}
}
class Student implements Comparable<Student> {
private int score;
private String name;
public int getscore() {
return score;
}
public void setscore(int score) {
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//按照学分从大大小排序
public int compareTo(Student Student) {
return this.score < Student.score ? 1
: (this.score > Student.score ? -1 : 0);
}
public String toString() {
return this.score + "," + this.name;
}
}