我有一个
ArrayList
,其中包含格式为(星期六,2012 年 2 月 4 日)的日期。我该如何排序ArrayList
?
这是最简单的排序方法之一,
Collections.sort(<Your Array List>);
如果您在排序时有任何特殊要求,可以自行提供
Comparator
。例如:
//your List
ArrayList<Date> d = new ArrayList<Date>();
//Sorting
Collections.sort(d, new Comparator<Date>() {
@Override
public int compare(Date lhs, Date rhs) {
if (lhs.getTime() < rhs.getTime())
return -1;
else if (lhs.getTime() == rhs.getTime())
return 0;
else
return 1;
}
});
关键要素是将
Date
对象转换为毫秒(使用getTime()
)进行比较。
8年后..
List<Date> dates = datelist;
List<Date> sorted = dates.stream()
.sorted(Comparator.comparingLong(Date::getTime))
.collect(Collectors.toList());
12年后...
final var sortedDates = dates.stream().sorted().toList();