如何使用比较器按降序排序日期

jag*_*ggs 3 java sorting datetime date map

我有一个testBean带有getter setter和方法的bean对象.我正在从数据库中检索结果并将其存储在一个TreeMap

Map遗嘱的输出如下:

{Student1 = [testBean[Dept=Science,ID=12,grade=A,Date=12-Jan-2013]]
            [testBean[Dept=Science,ID=12,grade=B,Date=14-Mar-2013]]

{Student2 = [testBean[Dept=Science,ID=02,grade=A,Date=12-Jan-2013]]
            [testBean[Dept=Science,ID=02,grade=A,Date=14-Mar-2013]]
Run Code Online (Sandbox Code Playgroud)

我需要按降序排列输出,以便最新的日期出现.所以我使用比较器来对日期进行排序:

public int DateCompare(Object studentObj, Object anotherStudentObj) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
    String value = ((testBean) studentObj).getDateTmTrans();
    String value1 = ((testBean) anotherStudentObj).getDateTmTrans();
    int retVal = 0;

    try {

        Date firstDate = dateFormat.parse(value);
        Date secondDate = dateFormat.parse(value1);     
        retVal = firstDate.compareTo(secondDate);

    } catch (ParseException e) {
        e.printStackTrace();
    }       
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但我无法按降序排列日期.是否有任何解决方案可以获得所需的输出?

欢迎任何建议

提前致谢

Jon*_*eet 14

但我无法按降序排列日期.

两个简单的选择:

  • 您可以使用自己反转您的比较secondDate.compareTo(firstDate).(我假设在您的实际代码中,您实际上正在返回retVal;它在您发布的代码中被忽略.)
  • 调用Collections.reverseOrder(Comparator)以与原始逆序相反的顺序创建比较器.