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()); } }