我有一个带有 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/