我正在尝试对日期列表进行排序,但是它不起作用。
这是AttEnt中的声明和get函数
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "end_time")
private Date endTime;
public Date getEndTime() {
return endTime;
}
这是什么都没做的排序代码。 GetAttempts()获取所有被调用尝试的列表。它们顺序不对,我只想能够获得具有最新endTime的任何尝试。
List<AttEnt> attempts = called.getAttempts();
Collections.sort(attempts, new Comparator<AttEnt>() {
@Override
public int compare(AttEnt a1, AttEnt a2) {
if (a1.getEndTime() == null || a2.getEndTime() == null)
return 0;
return a1.getEndTime().compareTo(a2.getEndTime());
}
});
我相信上面的代码应该对尝试进行排序,然后对尝试进行排序,因此最新的结束时间将是trys.get(attempts.size()-1).getEndTime()
最佳答案
Comparator<AttEnt> comparator = Comparator.comparing(AttEnt::getEndTime).reversed();
attempts.sort(comparator);
接口中的Java静态方法是您的朋友
单击HERE获得更多功能