Map根据value排序

网上找到的资源,

package com.test.ch1;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

public class MyIntComparator {

      public static void main(String[] args) {
      Map<String, Integer> map = new HashMap<String, Integer>(); 

      map.put("阳光", 20); 
      map.put("春节", 10); 
      map.put("太阳", 30); 
      map.put("多阳", 80); 
      map.put("明媚", 90); 
      map.put("努力", 15); 
      map.put("坚持", 62); 
      map.put("我最棒", 36); 

      List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>(   map.entrySet()); 
      //排序前 
      for (int i = 0; i < infoIds.size(); i++) { 
      String id = infoIds.get(i).toString(); 
      System.out.println(id); 
      } 
      //排序 
      Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { 
      public int compare(Map.Entry<String, Integer> o1, 
      Map.Entry<String, Integer> o2) { 
      return (o2.getValue() - o1.getValue()); 
      } 
      }); 
      //排序后 
      System.out.println("--------------------------排序后:"); 
      for (int i = 0; i < infoIds.size(); i++) { 
      Entry<String, Integer> id = infoIds.get(i); 
      System.out.println(id.getKey());
     } 

     }
    }

 

posted @ 2013-12-23 19:38  杨桃  阅读(770)  评论(0编辑  收藏  举报