码迷,mamicode.com
首页 > 编程语言 > 详细

HashMap的两种排序方式

时间:2015-08-25 21:29:44      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:

 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 }

 

HashMap的两种排序方式

标签:

原文地址:http://www.cnblogs.com/lyr2015/p/4758529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!