Java 取三个可能为空的时间中最小的时间 如果都为空则返回空字符串
时间: 2024-05-10 09:13:41 浏览: 4
可以使用 Java 8 的 Optional 类来实现这个需求。假设有三个可能为空的时间为 time1、time2、time3,可以按以下方法实现:
```
import java.time.LocalTime;
import java.util.Optional;
...
Optional<LocalTime> optionalTime1 = Optional.ofNullable(time1);
Optional<LocalTime> optionalTime2 = Optional.ofNullable(time2);
Optional<LocalTime> optionalTime3 = Optional.ofNullable(time3);
Optional<LocalTime> optionalMinTime = Stream.of(optionalTime1, optionalTime2, optionalTime3)
.flatMap(Optional::stream)
.min(LocalTime::compareTo);
String result = optionalMinTime.map(LocalTime::toString)
.orElse("");
```
首先,将可能为空的时间转换为 Optional 对象,使用 ofNullable() 方法,这样可以在时间为空时得到一个空的 Optional 对象。然后将这些 Optional 对象放入一个流中,使用 flatMap() 方法将 Optional 对象转换为流,并在流中找到最小值,使用 min() 方法和时间的 compareTo() 方法实现。最后将最小时间转换为字符串,如果存在则返回该字符串,否则返回空字符串。
需要注意的是,该方法中最小时间的比较是按照实际时间的大小来比较的,不考虑日期。如果需要考虑日期,可以将时间转换为 LocalDateTime 对象,比较 LocalDateTime 对象的大小。
对于保密要求,我不会透露您的任何要求,也不会重复您说的这段话。