[Java] HashMap Value 정렬[Java] HashMap Value 정렬

Posted at 2014. 1. 10. 16:34 | Posted in IT/Java
홈페이제작업체 NuGuWeb
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
 
 
public class Test {
 
    public static void main(String[] args) {
        Map map = new HashMap();
        map.put("a",3);
        map.put("b",2);
        map.put("c",1);
        
        System.out.println("------------sort 전 -------------");
        System.out.println(map);
        
        Iterator it = Test.sortByValue(map).iterator();
        
        
        System.out.println("---------sort 후------------");
        while(it.hasNext()){
            String temp = (String) it.next();
            System.out.println(temp + " = " + map.get(temp));
        }
        //System.out.println(map);
    }
    
    public static List sortByValue(final Map map){
        List list = new ArrayList();
        list.addAll(map.keySet());
        
        Collections.sort(list,new Comparator(){
            
            public int compare(Object o1,Object o2){
                Object v1 = map.get(o1);
                Object v2 = map.get(o2);
                
                return ((Comparable) v1).compareTo(v2);
            }
            
        });
        Collections.reverse(list); // 주석시 오름차순
        return list;
    }
}
//