利用map的value进行排序

2009-03-19 playfish (架构师)

map内部是按照hash算法存储的,但如果能对map排序在某些时候还是有用的。
Java代码

   1. /**
   2.     * @param h
   3.     * @return
   4.     * 实现对map按照value升序排序
   5.     */ 
   6.    @SuppressWarnings("unchecked") 
   7.    public static Map.Entry[] getSortedHashtableByValue(Map h) { 
   8.        Set set = h.entrySet(); 
   9.        Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set 
  10.                .size()]); 
  11.        Arrays.sort(entries, new Comparator() { 
  12.            public int compare(Object arg0, Object arg1) { 
  13.                Long key1 = Long.valueOf(((Map.Entry) arg0).getValue().toString()); 
  14.                Long key2 = Long.valueOf(((Map.Entry) arg1).getValue().toString()); 
  15.                return key1.compareTo(key2); 
  16.            } 
  17.        }); 
  18.  
  19.        return entries; 
  20.    } 

你可能感兴趣的:(算法)