zoukankan      html  css  js  c++  java
  • PTA 乙级 1004 成绩排名 (20分) JAVA

     JAVA

     写的很冗余,也没考虑类之间的关系,还能更简洁,更高效,仅做参考

    有时间考虑做一个学生数据库

     1 import java.util.Arrays;
     2 import java.util.HashMap;
     3 import java.util.Scanner;
     4 
     5 public class Main {
     6     private HashMap<String,HashMap<String,Integer>> Grade =
     7             new HashMap<String, HashMap<String, Integer>>();
     8 
     9     public void SetGrade(String name,String ID,int grade){      //得到成绩
    10         HashMap<String,Integer> stu = new HashMap<String, Integer>();
    11         stu.put(ID,grade);
    12         Grade.put(name,stu);
    13     }
    14 
    15     public void getextre(boolean est){        //获得最高分、最低分(true是最高分,false 是最低分)
    16         String str = null,name = null;
    17         boolean flag = true;
    18         for(String s : Grade.keySet()){
    19             for(String k : Grade.get(s).keySet()){
    20                 if(flag){name = s;str = k; flag = false;}
    21                 if(est) {
    22                     if (Grade.get(s).get(k) > Grade.get(name).get(str)) {
    23                         name = s;
    24                         str = k;
    25                     }
    26                 }else{
    27                     if (Grade.get(s).get(k) < Grade.get(name).get(str)) {
    28                         name = s;
    29                         str = k;
    30                     }
    31                 }
    32             }
    33         }
    34         System.out.println(name+" "+str);
    35     }
    36 
    37     public static void main(String[] args) {
    38         Main gad = new Main();
    39         Scanner in = new Scanner(System.in);
    40         int num = in.nextInt();
    41         for(int i = 0; i<num; i++){
    42             String name = in.next();
    43             String sub = in.next();
    44             int n = in.nextInt();
    45             gad.SetGrade(name,sub,n);
    46         }
    47         gad.getextre(true);
    48         gad.getextre(false);
    49         in.close();
    50     }
    51 }

    利用HashMap实现的

    main函数里获取名字、ID、成绩那部分考虑过用字符串获取后,用split 函数分割,但是成绩从 String 转 int 的时候会报错,尝试过Integer.valueOf()和Interger.parseInt(String),还是报错,无法解决,只好定义变量去处理

  • 相关阅读:
    后端PHP框架laravel学习踩的各种坑
    IE6、IE7兼容querySelectorAll和querySelector方法-最终版本
    package.json保存
    原生javascript兼容性总结
    原生javascript代码懒加载
    禁止选择文本样式
    xml转实体类的实现
    kendo ui editor 文本编辑器 自定义高度的实现
    setTimeout执行时带参数,并且带的是object对象类型的参数
    KendoUi listview template的用法记录
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13190955.html
Copyright © 2011-2022 走看看