Map排序

 1 Map<String,Integer> map = new HashMap<String, Integer>();
 2         map.put("语文", 90);
 3         map.put("数学", 91);
 4         map.put("地理", 88);
 5         map.put("物理", 99);
 6         map.put("化学", 78);
 7         map.put("生物", 60);
 8         map.put("外语", 80);
 9         
10         for(Map.Entry<String,Integer> m : map.entrySet()){
11             System.out.println(m.toString());
12         }
13         System.out.println("-----------排序后:---------");
14         
15         
16         List<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
17         Collections.sort(list,new Comparator<Map.Entry<String,Integer>>(){
18             public int compare(Map.Entry<String,Integer> c1,Map.Entry<String,Integer> c2){
19                 return c2.getValue().compareTo(c1.getValue());
20             }
21         });
22         
23         for(int i=0;i<list.size();i++){
24             String obj = list.get(i).toString();
25             System.out.println(obj);
26         }
27         System.out.println("-----------平均分:---------");
28         Integer count = 0;
29         int n = 0;
30         for(Map.Entry<String,Integer> m : map.entrySet()){
31             Integer value = m.getValue();
32             count = count+value;
33             n++;
34         }
35         System.out.println(new DecimalFormat("#0").format(count/n));
36         System.out.println("----------排名顺数第二的科目:----------");
37         for(int i=0;i<list.size();i++){
38             if(i == 1){
39                 Map.Entry<String,Integer> m = list.get(i);
40                 System.out.println(m.getKey());
41             }
42         }
43         System.out.println("---------排名倒数第二的科目:-----------");
44         for(int i=list.size()-1;i>=0;i--){
45             if(i == list.size()-2){
46                 Map.Entry<String,Integer> m = list.get(i);
47                 System.out.println(m.getKey());
48             }
49         }

 

posted @ 2014-05-21 10:50  刘尊礼  阅读(154)  评论(0)    收藏  举报