题解 | #成绩排序#二维数组排序

成绩排序

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

import java.math.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.concurrent.atomic.*;
import java.util.stream.*;
import java.util.regex.*;
import java.util.function.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        int count = Integer.parseInt(in.nextLine());
        boolean asc = "1".equals(in.nextLine()) ? true : false;

        // 二维数组排序
        String[][] scores = new String[count][2];
        for (int i = 0; i < count; i++) {
            String[] a = in.nextLine().split(" ");
            scores[i] = a;
        }

        Arrays.sort(scores, new Comparator<String[]>() {
            @Override
            public int compare(String[] s1, String[] s2) {
                if (asc) {
                    return Integer.parseInt(s1[1]) - Integer.parseInt(s2[1]);
                } else {
                    return Integer.parseInt(s2[1]) - Integer.parseInt(s1[1]);
                }
            }
        });

        Arrays.stream(scores).forEach(s -> {
            System.out.printf("%s %s\n", s[0], s[1]);
        });
    }



    // public static void main(String[] args) {
    //     Scanner in = new Scanner(System.in);

    //     int count = Integer.parseInt(in.nextLine());
    //     boolean asc = "1".equals(in.nextLine()) ? true : false;
    //     两次构建 map 使用 treemap
    //     Map<String, Integer> map = new HashMap<>();
    //     while (in.hasNextLine()) {
    //         String[] scores = in.nextLine().split(" ");
    //         map.put(scores[0], Integer.parseInt(scores[1]));
    //     }

    //     // System.out.println(map);

    //     TreeMap<String, Integer> treeMap = new TreeMap<>(new Comparator<String>() {
    //         @Override
    //         public int compare(String o1, String o2) {
    //             if (asc) {
    //                 return map.getOrDefault(o1, 0) - map.getOrDefault(o2, 0);
    //             } else {
    //                 return map.getOrDefault(o2, 0) - map.getOrDefault(o1, 0);
    //             }
    //         }
    //     });

    //     treeMap.putAll(map);
    //     treeMap.entrySet().forEach(s -> {
    //         System.out.printf("%s %d\n", s.getKey(), s.getValue());
    //     });
    // }
}


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务