List<Map<String,Object>>按照子元素中的时间排序

来源:互联网 发布:淘宝怎么优化 编辑:程序博客网 时间:2024/06/06 02:45
package xclass;


import java.text.ParseException;
import java.text.SimpleDateFormat;
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 ListMapSort {


/**
* @param args
*/
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map1 = new HashMap<String, Object>();
map1.put("name", "张三");//名字
map1.put("age", 22);    //年龄
map1.put("birth", "1989-11-24 11:24:11");//出生年月日
list.add(map1);
Map<String, Object> map3 = new HashMap<String, Object>();
map3.put("name", "王五");
map3.put("age", 38);
map3.put("birth", "1980-11-24 12:24:32");
list.add(map3);
Map<String, Object> map5 = new HashMap<String, Object>();
map5.put("name", "谢七");
map5.put("age", 20);
map5.put("birth", "1991-11-24 12:00:00");
list.add(map5);
Map<String, Object> map6 = new HashMap<String, Object>();
map6.put("name", "赵六");
map6.put("age", 22);
map6.put("birth", "1989-11-24 12:24:11");
list.add(map6);
//匿名实现Comparator接口进行排序
Collections.sort(list, new Comparator<Map<String,Object>>() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
int result = 0;
//进行判断

try {

//升序

result = (formatter.parse((String)o1.get("birth"))).compareTo(formatter.parse((String)o2.get("birth")));

//降序

//result = (formatter.parse((String)o2.get("birth"))).compareTo(formatter.parse((String)o1.get("birth")));

} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
});
for(Map<String,Object> m:list){
System.out.println("Map[name="+m.get("name")+"age="+m.get("age")+"birth="+m.get("birth")+"]");

}
System.out.println(list);


}


}
原创粉丝点击