注:
转载于 http://www.cnblogs.com/xingyun/archive/2012/12/09/2809962.html
package com.holdobject; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; public class HashMapSort { public static void main(String[] args) { Map<String, Integer> map = new HashMap<String, Integer>(); map.put("d", 3); map.put("c", 1); map.put("b", 1); map.put("a", 2); List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.Entry<String, Integer>>( map.entrySet()); System.out.println("Before Sort...."); for (int i = 0; i < infoIds.size(); i++) { System.out.println(infoIds.get(i).toString()); } System.out.println(" After Sort(Key)...."); Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o1.getKey().toString().compareTo(o2.getKey()); } }); for (int i = 0; i < infoIds.size(); i++) { System.out.println(infoIds.get(i).toString()); } System.out.println(" After Sort(Value)...."); Collections.sort(infoIds, new Comparator<Map.Entry<String, Integer>>() { public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) { return o1.getValue() - (o2.getValue()); } }); for (int i = 0; i < infoIds.size(); i++) { System.out.println(infoIds.get(i).toString()); } } }
注:
以上实现,调用了Collection.sort接口,其中sort函数的参数是List<T>泛型
Map.Entry<String,Double> 为HashMap中的键值对
参考资料: