W jaki sposób można skorygować sumę za pomocą interfejsu API stream
z zagnieżdżonymi pętlami foreach, z których każdy ma stan filtra?Jak sumować wartości w zagnieżdżonych pętlach foreach?
//java7
Double sum = null;
for (FirstNode first : response.getFirstNodes()) {
if (first.isValid()) {
for (SndNnode snd : first.getSndNodes()) {
if (snd.getType() == NodeType.AMOUNT) {
sum += snd.getAmount();
break;
}
}
}
}
//java8
response.getFirstNodes().stream().filter(first -> first.isValid()).mapToDouble(???).sum();
Moja SND pętla foreach będzie:
first.getSndNodes().stream().filter(snd -> snd.getType() == NodeType.AMOUNT).mapToDouble(snd -> snd.getAmount()).findFirst().sum();
Jak mogę teraz zintegrować pętlę foreach SND do pierwszego, aby uzyskać globalną sumę zagnieżdżonych list?
Myślę, że instrukcja 'break;' jest zbędna –
Nie, jeśli 'getSndNodes()' zwraca naprawdę dużą listę i chcę uzyskać tylko pierwszy/jedyny wynik. Ale oczywiście dotyczy to tylko bardzo dużych list i przez większość czasu nie będzie miało żadnego wpływu. – membersound