题解 | #成绩排序#

成绩排序

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

学生和分数拼接后存list集合,sort排序时分割字符串取出分数进行排序
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc =new Scanner(System.in);
        int n =Integer.parseInt(sc.nextLine());
        int flag =Integer.parseInt(sc.nextLine());
        Map<String,Integer> map = new LinkedHashMap<>(n);
        List<String> list = new ArrayList<>();
        for(int i=0;i<n;i++){
            String s = sc.nextLine();
            String[] arr = s.split(" ");
            list.add(arr[0]+'='+arr[1]);//用list排序
            //map.put(arr[0]+'='+Integer.parseInt(arr[1]),Integer.parseInt(arr[1]));
        }
        //排序
        list = getOrderBy(list,flag);
        for(int i=0;i<list.size();i++){
            String[] arr = list.get(i).split("=");
            System.out.println(arr[0]+" "+arr[1]);
        }
    }
    
    public static List<String> getOrderBy(List<String> list,int flag){
        if(flag == 1){
            Collections.sort(list,(s1,s2)->{
                String[] arr1 = s1.split("=");
                String[] arr2 = s2.split("=");
                int n1 =Integer.parseInt(arr1[1]);
                int n2 = Integer.parseInt(arr2[1]);
                if(n1 == n2){
                    return 0;
                }
                if(n1 > n2){
                    return 1;
                }
                if(n1 < n2){
                    return -1;
                }
                return n1 - n2;
            });
        }else{
            Collections.sort(list,(s1,s2)->{
                String[] arr1 = s1.split("=");
                String[] arr2 = s2.split("=");
                int n1 =Integer.parseInt(arr1[1]);
                int n2 = Integer.parseInt(arr2[1]);
                if(n1 == n2){
                    return 0;
                }
                if(n1 > n2){
                    return -1;
                }
                if(n1 < n2){
                    return 1;
                }
                return n2 - n1;
            });
        }
        return list;
    }
}


全部评论

相关推荐

01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务