开发者社区> 问答> 正文

流中的if陈述

是否可以在下面的地图中使用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;
}

我只想返回介于datefrom和之间的日期和用户的日期和tempAverage dateTo。所以我想实现一个if语句

for (Weather weather : Data){
    if(!weather.getDateTime().isAfter(dateTo) && !weather.getDateTime().isBefore(dateFrom)){}
}

其中weatherData是包含日期和温度的ArrayList。我的天气课:

public class Weather {
    private LocalDate dateTime;
    private LocalTime time;
    private double temperature;
    private String tag;
    //setter, getter, constructor 
}

日期的格式为1946-01-15,温度的格式为-0.3。

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 21:40:18 263 0
1 条回答
写回答
取消 提交回答
  • 您可以使用filter()

    weatherData.stream().filter(weather -> !weather.getDateTime().isAfter(dateTo) &&
                                        !weather.getDateTime().isBefore(dateFrom))...
    

    回答来源:Stack Overflow

    2020-03-26 21:41:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载