题解 | #成绩排序#

成绩排序

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

import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int people = in.nextInt();
        int sort = in.nextInt();
        ArrayList<Score> al = new ArrayList();
        while (people > 0) {
            al.add(new Score(in.next(), in.nextInt()));
            people--;
        }
        al.sort(new ScoreComparator(sort));
        for (Score sc : al) {
            System.out.println(sc.name + " " + sc.score);
        }

    }
}
// creates the comparator for comparing score
class ScoreComparator implements Comparator<Score> {
    int sort;
    ScoreComparator(int sort) {
        this.sort = sort;
    }

    // override the compare() method
    public int compare(Score s1, Score s2) {
        // 其底层原理为如果compare的返回值为正数, 就交换两个比较元素的位置
        if (sort == 0) {
            // desc
            return s2.score - s1.score;
        } else {
            // acs
            return s1.score - s2.score;
        }
    }
}
class Score {
    String name;
    int score;
    Score(String name, int score) {
        this.name = name;
        this.score = score;
    }
}

知识点: Comparator 的compare

全部评论

相关推荐

丿南烟丶:黑白模板吧,不要这样花哨的。 主要成就太空了,和获奖融在一起,写一两行就行了。 职业技能不要这样排,就传统的掌握精通什么什么然后举例补充的一些重要技术点。 自我介绍说实话也没啥用,可以删了。 把自己的两个项目方案细节补充上去,为什么这样设计,怎么设计,成果是什么按star法则来写 你要引导面试官来问你的技能和项目,你的获奖和自我介绍别人可能看都不看一眼或者不太在乎,重要的是展示你能干活的能力
点赞 评论 收藏
分享
牛客吹哨人:哨哥晚点统一更新到黑名单:能救一个是一个!26届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1525833
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务