2.请把学生名与考试分数录入到集合中,并按照显示前三名成绩的名字。
package MapTest.exer;
import javax.sound.midi.Soundbank;
import java.util.*;
public class StudentTest {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int id = 1001;
int exit = 1;
TreeSet<Sturdent> set = new TreeSet<>(new Comparator() {
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Sturdent && o2 instanceof Sturdent) {
Sturdent s1 = (Sturdent) o1;
Sturdent s2 = (Sturdent) o2;
return -Integer.compare(s1.getScore(), s2.getScore());
} else {
throw new RuntimeException("Type is wrong");
}
}
});
// Sturdent sturdent = new Sturdent("tom",34,1000);
// set.add(sturdent);
while (true) {
if (exit > 0) {
System.out.print("姓名:");
String name = scanner.next();
System.out.print("分数:");
int score = scanner.nextInt();
Sturdent student = new Sturdent(name, score, id);
try{
set.add(student);
id++;
}catch (Exception e){
e.printStackTrace();
}
System.out.println("是否退出?按-1退出,按1继续");
exit = scanner.nextInt();
if (exit == -1){
int index = 1;
Iterator iterator = set.iterator();
while (iterator.hasNext()) {
if (index <= 3) {
System.out.println(iterator.next());
index++;
}
}
}
} else {
break;
}
// Sturdent sturdent1 = new Sturdent("tom", 34, 1006);
// set.add(sturdent1);
set.addAll(set1);
}
}
}
class Sturdent{
String name;
int score;
int id;
public Sturdent() {
}
public Sturdent(String name, int score, int id) {
this.name = name;
this.score = score;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "Sturdent{" +
"name='" + name + '\'' +
", score=" + score +
", id=" + id +
'}';
}
}