目前我正在尝试按日期排序我的列表:
Collections.sort(unsortedDates, new Comparator<Item>() {
public int compare(Item m1, Item m2) {
return m1.getDate().compareTo(m2.getDate());
}
});
Run Code Online (Sandbox Code Playgroud)
但是我希望对列表进行排序,以便锚定日期为今天,第一个项目应该是当前日期的最近日期.
日期格式是MM/dd.
getDate()返回一个Date对象.
在比较器之外创建今天的日期,并更改比较器以比较它所比较的日期的绝对差异,如下所示:
final long todayTime = new Date().getTime();
Collections.sort(unsortedDates, new Comparator<Item>() {
public int compare(Item m1, Item m2) {
long dist1 = Math.abs(todayTime-m1.getDate().getTime());
long dist2 = Math.abs(todayTime-m2.getDate().getTime());
return Long.compare(dist1, dist2);
}
});
Run Code Online (Sandbox Code Playgroud)