怎样用Map实现学生成绩单的存储和查询,并且对成绩进行排序储存到TreeSet中,求出平均成绩,最大值和最小值~

解决方案 »

  1.   

    为什么要存储到TreeSet中呢?TreeSet元素不允许重复,如果有人成绩相同这么办?
      

  2.   

    Map score = new hashMap();
    score.put("姓名/学号",成绩)
    ...
    至于要排序,直接用数组就行啦
    int [] = new int[学生数量]求平均:
    int all=0;
    int avg=0;
    for(int i=0;i<.length;i++){
      all += [i];
    }
    avg=all/.length;求最值:
    .sort()//升序
    [0]最小
    [.length-1]最大如同楼上所说,set要求不重复的元素,所以用set明显不合理,你也可以用list,反正都差不多
      

  3.   


    public class Main { 
    private Map<String, Integer> map = new HashMap<String, Integer>();
    public static void main(String[] args) {
    Main m = new Main();
    //存储
    m.record("name1", 90);
    m.record("name2", 100);
    //查询
    System.out.println(m.getMark("name2"));
    //最大值
    System.out.println(m.getMaxMark());
    //最小值
    System.out.println(m.getMinMark());
    //平均值
    System.out.println(m.getAvgMark());


    }
    private void record(String name, Integer value) {
    map.put(name, value);
    }
    private Integer getMark(String name) {
    return map.get(name);
    }
    private Integer getMaxMark() {
    return Collections.max(map.values());
    }
    private Integer getMinMark() {
    return Collections.min(map.values());
    }
    private Integer getAvgMark() {
    int num = map.values().size();
    if (num > 0) {
    int sum = 0;
    for (Integer i : map.values()) {
    sum += i;
    }
    return sum / num;
    } else {
    return 0;
    }
    }
    }