java - 流中的 If 语句

标签 java java-stream

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

我只想返回 datefromdateTo 之间的日期和 tempAverage,这是用户输入。所以我想实现一个 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。

最佳答案

您可以使用filter() :

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

关于java - 流中的 If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60674360/

相关文章:

java - 如何从 excel 表中一一读取搜索关键字。 any1 可以帮助我如何使用 java webdriver 来做到这一点吗?

java - Servlet 从服务器加载视频文件

java - 读入Excel表格,处理并输出

lambda - 使用 java 8 流对列表项进行分组和求和

java - 使用 Java 流将字符串列表转换为映射列表

java - 如何使用 Java 8 Stream API 将嵌套列表合并为简单列表

java - 是否可以将监听器添加到没有引用名称的对象?

c# - 将 C# DataTable 的序列化实例转换为 java

Java 流 : Issue about collect to a Map<String, 对象>

java - 标准集合返回的 Stream 实现有多专业?