我有一個包含約200,000個刻度值(日期和值)的列表。列表確實是而不是對於每個日期都有一個刻度值。但這是我在輸出中需要的。所以我需要在缺口中添加缺少的刻度值。在Java流中內插值
我正在使用Java Stream API處理列表。
class Tick {
public LocalDate date;
public BigDecimal value;
public Tick(LocalDate date, BigDecimal value) {
this.date = date;
this.value = value;
}
}
public class DateInterpolator {
public static void main(String [] args)
{
final ArrayList<Tick> list = new ArrayList<>();
list.add(new Tick(LocalDate.of(2017, 1, 1), BigDecimal.valueOf(7)));
list.add(new Tick(LocalDate.of(2017, 1, 3), BigDecimal.valueOf(8)));
final Stream<Tick> stream = list.stream();
// TODO no value for 2017-01-02 given.
// I want to use the value from the day before (7).
// Add black magic here.
}
}
是否可以向流中添加值或者是否可以得到不包含間隙的結果流?我可以根據流來預測(檢測差距)嗎?
根據我的理解,你不想添加元素流(因爲你不能,流不包含任何數據),但對你的列表,是的,這是絕對有可能的,只需加1並一直檢查該日期是否在列表中。 – Shadov
前一天的價值將是「7」。 好的,讓我換句話說:我可以得到一個沒有差距的結果流嗎? – David