如何在Java中获取List中最早的日期?

15

我有一个ArrayList,其中存储了0...4个日期。

列表中的日期数量取决于业务逻辑。

如何获取此列表中最早的日期?当然,我可以构建迭代循环来最终检索最早的日期。但有没有更“清洁”/更快捷的方法来完成这项工作,特别是考虑到这个列表可以在以后扩展的情况下?


@AndyTurner,你应该将这个评论发布为答案。 - Edgard Leal
3个回答

36

java.util.Date实现了Comparable<Date>,所以您可以简单地使用:

Date minDate = Collections.min(listOfDates);

这取决于列表中至少有一个元素。如果列表可能为空(还有许多其他方法):

Optional<Date> minDate = listOfDates.stream().min(Comparator.naturalOrder());

0

SortedSet

根据您的应用程序,您可以考虑使用 SortedSet(如TreeSet)。这允许您更改集合并始终轻松地接收最低元素。

但是,向集合添加元素会更加昂贵。


-1
如果没有关系改变插入顺序,那么可以对列表进行排序并获取索引为0的元素。

2
对列表进行排序是一个 O(n log n) 的操作。你可以通过迭代列表,在 O(n) 时间内找到最小的元素。 - Andy Turner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接