对map里面的key排序

对map里面的key排序 求代码示例

public class text {

    private   HashMap   map           =   new   HashMap(); 
    private   Set           keySet     =   map.keySet(); 

    public   Object   get(String   key)   { 
            return   map.get(key); 
    } 

    public   void   put(String   key,   Object   value)   { 
            map.put(key,   value); 
    } 

    public   void   sort()   { 
            List   list   =   new   ArrayList(map.keySet()); 

            Collections.sort(list,   new   Comparator()   { 
                    public   int   compare(Object   a,   Object   b)   { 
                            return   a.toString().toLowerCase().compareTo(b.toString() 
                                    .toLowerCase()); 
                    } 
            }); 

            this.keySet   =   new   TreeSet(list); 
    } 

    public   Set   keySet()   { 
            return   this.keySet; 
    } 

 public   static   void   main(String [] args){ 
     text   map   =   new   text(); 
     map.put("1", "yi");
    map.put("8", "ba");
    map.put("9", "jiu");
    map.put("7", "qi");
    map.put("5", "wu");
    map.put("6", "liu");
    map.put("4", "si");
    map.put("3", "san");
    map.put("2", "er");

            for   (Iterator   it   =   map.keySet().iterator();   it.hasNext();)   { 
                    String   key   =   (String)   it.next(); 
                    //System.out.println( "key[ "   +   key   +   "],   value[ "   +   map.get(key)   +   "] "); 
            } 

           // System.out.println( "\n "); 
            map.sort(); 
            for   (Iterator   it   =   map.keySet().iterator();   it.hasNext();)   { 
                    String   key   =   (String)   it.next(); 
                    System.out.println( "key[ "   +   key   +   "],   value[ "   +   map.get(key)   +   "] "); 
            } 
    } 

iihero 他的代码写的很好 但是我这个比较容易懂

TreeMap就可以满足你的需求啊

public static void demoTreeMap()
{
    Map<Integer, String> m = new TreeMap<Integer, String>();
    m.put(10, "d1");
    m.put(2, "d0");
    m.put(5, "ddd");
    for (Map.Entry<Integer, String> o : m.entrySet())
    {
        System.out.println(o.getKey() + ", " + o.getValue());
    }
}

Arrays.sort(map.keySet().toArray(),new Comparator(){//.....});?

HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。
集合框架”提供两种常规的Map实现:HashMap和TreeMap (TreeMap实现SortedMap接口)。在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。使用HashMap要求添加的键类明确定义了hashCode()和equals()的实现。  这个TreeMap没有调优选项,因为该树总处于平衡状态。

用LinkedHashMap就是有序的,放进去是什么顺序,取出来就是什么顺序

直接用TreeMap,或者LikedHashMap就可以