Date ArrayList的排序

Joh*_*ohn 7 java sorting android

我有一个ArrayList包含格式的日期(Satuday,2012年2月4日).我该ArrayList怎么办呢?

Aer*_*row 18

这是最简单的排序方式之一,

Collections.sort(<Your Array List>);
Run Code Online (Sandbox Code Playgroud)


waq*_*lam 5

如果您在排序时有任何特殊要求,那么您可以通过提供自己的要求来完成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;
    }
});
Run Code Online (Sandbox Code Playgroud)

关键因素是您将Date对象转换为毫秒(使用getTime())进行比较.


小智 5

8年后..

List<Date> dates = datelist;
List<Date> sorted = dates.stream()
  .sorted(Comparator.comparingLong(Date::getTime))
  .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)