是否可以在下面的地图中使用 if 语句条件?
public Map<LocalDate, Double> avarageTemperatures(LocalDate dateFrom, LocalDate dateTo) {
Map<LocalDate, Double> tempAverage = Data.stream()
.collect(Collectors.groupingBy(Weather::getDateTime,
Collectors.averagingDouble(Weather::getTemp)));
System.out.println("average: " + tempAverage);
return tempAverage;
}
Run Code Online (Sandbox Code Playgroud)
我想只返回日期和tempAverage对之间的日期datefrom和dateTo,这是用户输入。所以我想实现一个 if 语句
for (Weather weather : Data){
if(!weather.getDateTime().isAfter(dateTo) && !weather.getDateTime().isBefore(dateFrom)){}
}
Run Code Online (Sandbox Code Playgroud)
其中weatherData是包含日期和温度的 ArrayList。我的天气课:
public class Weather {
private LocalDate dateTime;
private LocalTime time;
private double temperature;
private String tag;
//setter, getter, constructor
}
Run Code Online (Sandbox Code Playgroud)
日期格式为 1946-01-15,温度格式为 -0.3。
您可以使用filter():
weatherData.stream().filter(weather -> !weather.getDateTime().isAfter(dateTo) &&
!weather.getDateTime().isBefore(dateFrom))...
Run Code Online (Sandbox Code Playgroud)