자바 맵(value 로 정렬)

2960 단어 자바map
참고 자료
1 자바 맵 정렬(key 와 value)
http://hupy.iteye.com/blog/871085
2.java.util.Map 의 Value 를 정렬 합 니 다.
http://www.360doc.com/content/08/0818/21/59141_1554099.shtml
3 자바 맵 을 value 로 정렬
http://hi.baidu.com/anglee2010/blog/item/54796c0ff342ecea37d12260.html
4 Map 값 순 정렬(Map sort by value)-Java
http://han.guokai.blog.163.com/blog/static/136718271201001010228136/
실제 요구 사항 은 Map 의 value 에 따라 정렬 하고 value 형식 은 List 입 니 다.
/** 
     * @param h 
     * @return 
     *    map  value     
     */  
    @SuppressWarnings("unchecked")  
    public static ArrayList getSortedHashtableByValue(Map h) {        
        ArrayList<Map.Entry<String,List>> l = new ArrayList<Map.Entry<String,List>>(h.entrySet());  
        Collections.sort(l, new Comparator<Map.Entry<String, List>>() {    
            public int compare(Map.Entry<String, List> o1, Map.Entry<String, List> o2) {    
                return (o2.getValue().size() - o1.getValue().size());    
            }    
        });     
        return l;  
    }  

테스트 코드

Map<String,Object> maps = new java.util.TreeMap<String, Object>();		
		List list = new ArrayList();
		list.add("a");
		list.add("b");
		list.add("d");
		list.add("d");		
		maps.put("1",list);		
		
		list = new ArrayList();
		list.add("a");
		list.add("b");			
		maps.put("2",list);		
		
		list = new ArrayList();
		list.add("a");
		list.add("b");	
		list.add("a");
		list.add("b");
		list.add("a");
		list.add("b");
		maps.put("3",list);		
		
		list = new ArrayList();
		list.add("a");
		list.add("b");	
		list.add("a");
		list.add("b");
		list.add("a");
		list.add("b");
		list.add("a");
		list.add("b");
		maps.put("4",list);		
		
		ArrayList<Map.Entry<String,List>> entitys = getSortedHashtableByValue(maps);
		 
		 for(Map.Entry<String,List> entity : entitys){
			 System.out.println(entity.getKey() + " = " + entity.getValue().size());
		 }	

좋은 웹페이지 즐겨찾기