参考资料
1 java Map排序(按key和按value)
[url]http://hupy.iteye.com/blog/871085[/url]
2 針對java.util.Map的Value做排序
[url]http://www.360doc.com/content/08/0818/21/59141_1554099.shtml[/url]
3 java Map 按value排序
[url]http://hi.baidu.com/anglee2010/blog/item/54796c0ff342ecea37d12260.html[/url]
4 Map 按值排序 (Map sort by value) - Java
[url]http://han.guokai.blog.163.com/blog/static/136718271201001010228136/[/url]
[color=red]实际要求,按Map中的value排序,value类型为List[/color]
测试代码
1 java Map排序(按key和按value)
[url]http://hupy.iteye.com/blog/871085[/url]
2 針對java.util.Map的Value做排序
[url]http://www.360doc.com/content/08/0818/21/59141_1554099.shtml[/url]
3 java Map 按value排序
[url]http://hi.baidu.com/anglee2010/blog/item/54796c0ff342ecea37d12260.html[/url]
4 Map 按值排序 (Map sort by value) - Java
[url]http://han.guokai.blog.163.com/blog/static/136718271201001010228136/[/url]
[color=red]实际要求,按Map中的value排序,value类型为List[/color]
/**
* @param h
* @return
* 实现对map按照value升序排序
*/
@SuppressWarnings("unchecked")
public static ArrayList getSortedHashtableByValue(Map h) {
ArrayList<Map.Entry<String,List>> l = new ArrayList<Map.Entry<String,List>>(h.entrySet());
Collections.sort(l, new Comparator<Map.Entry<String, List>>() {
public int compare(Map.Entry<String, List> o1, Map.Entry<String, List> o2) {
return (o2.getValue().size() - o1.getValue().size());
}
});
return l;
}
测试代码
Map<String,Object> maps = new java.util.TreeMap<String, Object>();
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("d");
list.add("d");
maps.put("1",list);
list = new ArrayList();
list.add("a");
list.add("b");
maps.put("2",list);
list = new ArrayList();
list.add("a");
list.add("b");
list.add("a");
list.add("b");
list.add("a");
list.add("b");
maps.put("3",list);
list = new ArrayList();
list.add("a");
list.add("b");
list.add("a");
list.add("b");
list.add("a");
list.add("b");
list.add("a");
list.add("b");
maps.put("4",list);
ArrayList<Map.Entry<String,List>> entitys = getSortedHashtableByValue(maps);
for(Map.Entry<String,List> entity : entitys){
System.out.println(entity.getKey() + " = " + entity.getValue().size());
}