map中的某个key为时间字段的降序排序

使用map的某个key值存放时间,需要把时间降序排序

难点分析

  • 我这里是把两个List合并为一个List,里面的时间是乱序的,这样就不能直接使用常规的排序思维来排序,因为我需要想出一个通用的方法来降序排序我的时间,已达到要求
  • 后来在网上查资料发现只要一个类实现Comparator接口的compare()方法就可以实现任何的排序功能
    我把实现代码贴出来以供大家参考,希望能够帮助到大家!
    public class ServiceMINIBase implements Comparator{
    //重写compare方法,格式化时间,然后把时间作比较
    @Override
    public int compare(Object o1, Object o2) {
    int result = 0;
    SimpleDateFormat format = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
    try {
    HashMap map1 = (HashMap) o1, map2 = (HashMap) o2;
    Date map1_time = format.parse(map1.get(“createtime”));
    Date map2_time = format.parse(map2.get(“createtime”));
    if (map1_time.after(map2_time)) {
    result = -1;
    } else if (map1_time.before(map2_time)) {
    result = 1;
    } else if (map1_time.equals(map2_time)) {
    result = 0;
    }
    } catch (Exception e) {
    // TODO: handle exception
    e.printStackTrace();
    }
    return result;
    }

//调用compare()方法
//queryByUserCodeMsg就是存放map的List集合
//new ServiceMessage()你的当前类的实例对象
Collections.sort(queryByUserCodeMsg, new ServiceMessage());

你可能感兴趣的:(java)