0

我正在构建一个应用程序,我在其中下载天气数据并将其存储到数据库中。目标是每 30 分钟刷新一次数据。我的数据类的一部分如下所示:

public class Timeseries {

private Long timeseriesId;

    private String time;

    private Data data;
}

通过从 api 下载数据,部分数据是新的(新的时间序列),其余数据会根据更多可能的天气条件进行更新。我的目标是添加新记录并用新数据更新旧记录。为了合并这些列表,我正在从数据库中下载列表,并从我正在使用的 API 中下载第二个天气更新列表。我正在尝试在下面的方法中合并这些列表。到目前为止,我已经设法将来自 api 的新记录与从数据库中提取的列表合并:

public List<Timeseries> updateWeather(List<Timeseries> oldList, List<Timeseries> newData) {
        List<Timeseries> timeseries = new ArrayList<>(
                Stream.of(oldList, newData)
                        .flatMap(List::stream)
                        .collect(Collectors.toMap(Timeseries::getTimeseriesId,
                                timeseries1 -> timeseries1,
                                (Timeseries x, Timeseries y) -> x == null ? y : x))
                        .values());
        return timeseries;
    }

如何将“newData”列表中的值更新到“timeseries”列表中,其中字符串“时间”等于现有记录的时间?

4

0 回答 0