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),还是报错,无法解决,只好定义变量去处理

  • 相关阅读:
    转:【WebDriver】封装GET方法来解决页面跳转不稳定的问题
    转:Selenium2.0 click()不生效的解决办法
    (转).net下Selenium2使用方法总结
    转:从测试员到测试负责人
    7.2.4 MediaRecorder输出和录制
    7.2.3 MediaRecorder音频编码器
    7.2.2 MediaRecorder输出格式
    7.2.1 MediaRecorder 音频源
    7.2 定制音频捕获
    7.1 通过意图捕获音频
  • 原文地址:https://www.cnblogs.com/SCP-514/p/13190955.html
Copyright © 2011-2022 走看看