Java-Joda时间列表本地日期查找最新日期(&A)

2022-05-29 00:00:00 java jodatime

以下是使用Joda Time API的日期列表,我想从下面的列表中查找最新的日期

List<LocalDate> dates = new ArrayList<LocalDate>();
dates.add(eefdTewntyArray)
dates.add(rdTewntyArray);
dates.add(idSeventyArray);

上述列表的输出

[2025-08-01, 2025-08-01, 2026-08-01]

我要选择最晚的日期并存储到LocalDate中,这可能还会增加日期的‘n’个数


解决方案

对此使用Collections.max。由于每个LocalTime都实现Comparable,因此这是安全和简单的操作。

List<LocalDate> dates = new ArrayList<>();
dates.add(new LocalDate(2025, 8, 1));
dates.add(new LocalDate(2025, 8, 1));
dates.add(new LocalDate(2026, 8, 1));

// prints "2006-08-01"
System.out.println(Collections.max(dates));

Collections#max以线性时间运行,最坏情况下的性能为O(N),而Collections#sort基于Timsort,最坏情况下的运行时间为O(Nlogn)。如果您的日期列表足够大,那么也只有在那时,我才会考虑使用排序方法;在这里,它有点过分了。

相关文章