题解 | #成绩排序#

成绩排序

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-26 14:50
人力小鱼姐:有后面墨迹那两句的时间问题早回答完了
点赞 评论 收藏
分享
06-12 10:50
门头沟学院 Java
你的不定积分没加C:我怎么在学院群看到了同样的话
点赞 评论 收藏
分享
小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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