我有一个ArrayList,其中存储了0...4个日期。
列表中的日期数量取决于业务逻辑。
如何获取此列表中最早的日期?当然,我可以构建迭代循环来最终检索最早的日期。但有没有更“清洁”/更快捷的方法来完成这项工作,特别是考虑到这个列表可以在以后扩展的情况下?
java.util.Date
实现了Comparable<Date>
,所以您可以简单地使用:
Date minDate = Collections.min(listOfDates);
这取决于列表中至少有一个元素。如果列表可能为空(还有许多其他方法):
Optional<Date> minDate = listOfDates.stream().min(Comparator.naturalOrder());
O(n log n)
的操作。你可以通过迭代列表,在 O(n)
时间内找到最小的元素。 - Andy Turner