Map排序

小明本学期学习了7门课,分数分别是 语文90 数学 91 地理 88 物理 99 化学 78 生物 60 外语 80,请用java实现以下结果,并打印输出
 1、 把小明本学期的所有成绩按照从高到低排序,并打印输出
 2、 计算小明的所有科目的平均分,保留整数(四舍五入),并打印输出
 3、 计算小明分数排名第2的科目名称和分数排名倒数第2的科目,打印输出科目名称

Map<String,Integer> map = new HashMap<String, Integer>();
        map.put("语文", 90);
        map.put("数学", 91);
        map.put("地理", 88);
        map.put("物理", 99);
        map.put("化学", 78);
        map.put("生物", 60);
        map.put("外语", 80);
        
        for(Map.Entry<String,Integer> m : map.entrySet()){
            System.out.println(m.toString());
        }
        System.out.println("-----------排序后:---------");
        
        
        List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
        Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){
            public int compare(Map.Entry<String,Integer> c1,Map.Entry<String,Integer> c2){
                return c2.getValue().compareTo(c1.getValue());
            }
        });
        
        for(int i=0;i<list.size();i++){
            String obj = list.get(i).toString();
            System.out.println(obj);
        }
        System.out.println("-----------平均分:---------");
        Integer count = 0;
        int n = 0;
        for(Map.Entry<String,Integer> m : map.entrySet()){
            Integer value = m.getValue();
            count = count+value;
            n++;
        }
        System.out.println(new DecimalFormat("#0").format(count/n));
        System.out.println("----------排名顺数第二的科目:----------");
        for(int i=0;i<list.size();i++){
            if(i == 1){
                Map.Entry<String,Integer> m = list.get(i);
                System.out.println(m.getKey());
            }
        }
        System.out.println("---------排名倒数第二的科目:-----------");
        for(int i=list.size()-1;i>=0;i--){
            if(i == list.size()-2){
                Map.Entry<String,Integer> m = list.get(i);
                System.out.println(m.getKey());
            }
        }

 

posted @ 2014-04-15 15:47  残缘炫仔  阅读(404)  评论(0编辑  收藏  举报