java - 如何使用比较器按降序对日期进行排序

标签 java sorting date datetime map

我有一个带有 getter setter 和方法的 bean 对象 testBean。我正在从数据库中检索结果并将其存储在 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]]

我需要按降序排列输出,以便最新日期排在最前面。所以我使用比较器对日期进行排序:

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;
}

但我无法按降序对日期进行排序。是否有任何解决方案来获得所需的输出?

欢迎提出建议

提前致谢

最佳答案

But i couldn't able to sort the date in descending order.

两个简单的选择:

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

关于java - 如何使用比较器按降序对日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24034253/

相关文章:

java - 在 java 中,如何编辑文本文件的 1 行?

java - Zookeeper 遇到的临时节点问题

java - Swing setBackground 非颜色类值

java - 我可以忽略 "comparable"的使用吗

php - 如何全局设置 Symfony 表单的日期格式?

java - Android Q - 通过 NFC 启动隐私更改 Activity

c++ - 删除重复项和对 vector 进行排序的最有效方法是什么?

java - 为什么我用 Java 实现的快速排序不起作用?

java - Spring : Parameter with that position did not exist exception

php - 从 PHP 字符串中删除日期