HashMap的两种排序方式

 1 package Test4;
 2 
 3 import java.util.ArrayList;
 4 import java.util.Collections;
 5 import java.util.Comparator;
 6 import java.util.HashMap;
 7 import java.util.List;
 8 import java.util.Map;
 9  
10 public class Test { 
11 
12     public static void main(String[] args) { 
13         Map<String, Integer> map = new HashMap<String, Integer>();
14         map.put("d", 2);
15         map.put("c", 1);
16         map.put("b", 1);
17         map.put("a", 3);
18 
19         List<Map.Entry<String, Integer>> infoIds = 
new ArrayList<Map.Entry<String, Integer>>(map.entrySet()); 21     //ArrayList(Collection<? extends E> c)是ArrayList的一个不常用的构造方法,
构造一个包含指定 collection 的元素的列表。
22 23 //排序前 24 for (int i = 0; i < infoIds.size(); i++) { 25 String key= infoIds.get(i).getKey(); 26 int value= infoIds.get(i).getValue(); 27 System.out.println(key+":"+value); 28 } 29 /*输出结果: 30 d:2 31 b:1 32 c:1 33 a:3 */ 34 35 //排序 36 //重写compare方法 37 Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { 38 public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { 39 //return (o2.getValue() - o1.getValue()); //根据value排序 40 return (o1.getKey()).toString().compareTo(o2.getKey());//根据key排序 41 } 42 }); 43 44 //排序后 45 for (int i = 0; i < infoIds.size(); i++) { 46 String key= infoIds.get(i).getKey(); 47 int value= infoIds.get(i).getValue(); 48 System.out.println(key+":"+value); 49 } 50 //根据key排序 51 //a:3 52 //b:1 53 //c:1 54 //d:2 55 //根据value排序 56 //a:3 57 //d:2 58 //b:1 59 //c:1 60 } 61 }

 

posted @ 2015-08-25 20:23  岁月静好--lyr  阅读(305)  评论(0编辑  收藏  举报