题解 | #成绩排序#用一个类包装一下,再使用比较器解决

成绩排序

https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b

import java.util.Scanner;
import java.util.Comparator;
import java.util.ArrayList;
import java.util.Arrays;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int num = Integer.valueOf(in.nextLine());
        int way = Integer.valueOf(in.nextLine());
        ArrayList<student> ss = new ArrayList<>();
        student[] sss = new student[num];
        for(int i=0;i<num;i++){
            String str1 = in.nextLine();
            String[] str2 = str1.split(" ");
            String name = str2[0];
            Integer n = Integer.valueOf(str2[1]);
            student a = new student(n,name,i);
            sss[i]=a;
        } 
        if(way==0){
            Arrays.sort(sss,new Mycomp2());
            for(int i=0;i<sss.length;i++){
                System.out.println(sss[i].name+" "+sss[i].score);
            }
        }else{
            Arrays.sort(sss,new Mycomp());
            for(int i=0;i<sss.length;i++){
                System.out.println(sss[i].name+" "+ sss[i].score);
            }
        }
    }
    public static class student{
        public int score;
        public String name;
        public int number;
        public student(int s,String n,int num){
            score = s;
            name = n;
            number = num;
        }
    }
    public static class Mycomp implements Comparator<student>{
        @Override
        public int compare(student s1,student s2){
            return s1.score-s2.score == 0?s1.number-s2.number:s1.score-s2.score;
        }
    }

    public static class Mycomp2 implements Comparator<student>{
        @Override
        public int compare(student s1,student s2){
            return s2.score-s1.score == 0?s1.number-s2.number:s2.score-s1.score;
        }
    }
}

全部评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
后测速成辅导一两个月...:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
9225次浏览 83人参与
# 你的实习产出是真实的还是包装的? #
1698次浏览 40人参与
# 米连集团26产品管培生项目 #
5651次浏览 214人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7416次浏览 42人参与
# 简历第一个项目做什么 #
31519次浏览 327人参与
# 重来一次,我还会选择这个专业吗 #
433317次浏览 3926人参与
# MiniMax求职进展汇总 #
23765次浏览 308人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
186924次浏览 1120人参与
# 牛客AI文生图 #
21402次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152278次浏览 887人参与
# 研究所笔面经互助 #
118859次浏览 577人参与
# 简历中的项目经历要怎么写? #
309978次浏览 4189人参与
# AI时代,哪些岗位最容易被淘汰 #
63343次浏览 799人参与
# 面试紧张时你会有什么表现? #
30482次浏览 188人参与
# 你今年的平均薪资是多少? #
212996次浏览 1039人参与
# 你怎么看待AI面试 #
179816次浏览 1231人参与
# 高学历就一定能找到好工作吗? #
64302次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76425次浏览 374人参与
# 我的求职精神状态 #
447969次浏览 3128人参与
# 正在春招的你,也参与了去年秋招吗? #
363209次浏览 2637人参与
# 腾讯音乐求职进展汇总 #
160568次浏览 1110人参与
# 校招笔试 #
470199次浏览 2962人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务