您的位置:首页 > 其它

HashMap的两种排序方式

2015-08-25 20:23 441 查看
package Test4;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {

public static void main(String[] args) {
Map<String, Integer> map = new HashMap<String, Integer>();
map.put("d", 2);
map.put("c", 1);
map.put("b", 1);
map.put("a", 3);

List<Map.Entry<String, Integer>> infoIds = 
new ArrayList<Map.Entry<String, Integer>>(map.entrySet());     //ArrayList(Collection<? extends E> c)是ArrayList的一个不常用的构造方法,
构造一个包含指定 collection 的元素的列表。 //排序前 for (int i = 0; i < infoIds.size(); i++) { String key= infoIds.get(i).getKey(); int value= infoIds.get(i).getValue(); System.out.println(key+":"+value); } /*输出结果: d:2 b:1 c:1 a:3 */ //排序 //重写compare方法 Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { //return (o2.getValue() - o1.getValue()); //根据value排序 return (o1.getKey()).toString().compareTo(o2.getKey());//根据key排序 } }); //排序后 for (int i = 0; i < infoIds.size(); i++) { String key= infoIds.get(i).getKey(); int value= infoIds.get(i).getValue(); System.out.println(key+":"+value); } //根据key排序 //a:3 //b:1 //c:1 //d:2 //根据value排序 //a:3 //d:2 //b:1 //c:1 } }

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: