尚硅谷集合课后几道练习题_2

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 +
                '}';
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值