0%

HashMap,根据key,value排序和HashMap在声明时初始化

/声明的时候初始化      
HashMap hashMap = new HashMap(){
{
      put("a", 1);
      put("b", 3);
      put("c", 2);
       }
}; 
//sorted by value
ArrayList l = new ArrayList(hashMap.entrySet());    
Collections.sort(l, new Comparator() {    
     public int compare(Map.Entry o1, Map.Entry o2) {    
          return o1.getValue().compareTo(o2.getValue())  ;  
      }    
});  
for(Map.Entry e : l) {  
      System.out.println(e.getKey() + "::::" + e.getValue());  
}

//sorted by key
l = new ArrayList(hashMap.entrySet());    
Collections.sort(l, new Comparator() {    
     public int compare(Map.Entry o1, Map.Entry o2) {    
         return o1.getKey().compareTo(o2.getKey());    
    }    
});  
for(Map.Entry e : l) {  
     System.out.println(e.getKey() + "::::" + e.getValue());  
}        
//sorted by key,利用treeMap的特性
TreeMap treeMap= new TreeMap(hashMap);
for(Iterator iterator=treeMap.keySet().iterator();iterator.hasNext();) {
     String temp=iterator.next();
     System.out.println(temp + "::::" + treeMap.get(temp));  
     }