私は約200,000のティック値(日付と値)を持つリストを持っています。リストはではありません。にはすべての日付のティック値があります。しかし、これは私の出力に必要なものです。だから私はギャップに欠けているティック値を加える何かが必要です。Javaストリームの補間値
私は、Javaストリーム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.
}
}
ストリームに値を追加することはできますか、またはギャップを含まない結果ストリームを得ることはできますか?ストリームを使って先読み(ギャップを検出する)を行うことはできますか?
ストリームから要素を追加したくないから(ストリームにデータが含まれていないため)、リストに追加する必要はありません。確かに可能ですその日が常にリストにあるかどうかを確認してください。 – Shadov
前日の値は「7」になります。 私は言い換えることができます:ギャップを含まない結果のストリームを得ることはできますか? – David