Преобразование вложенного цикла в идиоматические операторы потока Java 8 ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
Преобразование вложенного цикла в идиоматические операторы потока Java 8

Сообщение Anonymous »

Следующую устаревшую логику необходимо преобразовать в функциональный подход Java 8:

Код: Выделить всё

AchFile dataRoot = unmarshalled.stream().findFirst().get();

List batches = dataRoot.getBatchRecords();
//batches.stream().flatMap(b -> b.getBatchEntries().stream().flatMap(e -> e.getBatchEntryDetails().stream().map(d -> d.setReceivingIndividualCompanyName("Client"))));

for (AchBatch batch : batches) {
int cntr = 1;
for (AchBatchEntry entry : batch.getBatchEntries()) {
Iterator it = entry.getBatchEntryDetails().iterator();
for (; it.hasNext(); cntr++ ) {
AchBatchEntryDetail detail = it.next();
detail.setReceivingIndividualCompanyName("Client Name"+cntr);
detail.setAmount(detail.getAmount());

String maskedAccount = randomizeAccountNumber(detail);

detail.setDfiAccountNumber(maskedAccount);

log.info("Masked detail record #{}", cntr);
}
}
}
Каким будет эквивалентный идиоматический синтаксис Java 8 для раскручивания такой структуры вложенного цикла?
Я начал применять FlatMap вместе с обычными операциями с картой (как видно из закомментированной части), но я не совсем уверен, что нахожусь на правильном пути, и был бы признателен за некоторые рекомендации.

Подробнее здесь: https://stackoverflow.com/questions/772 ... -operators

Вернуться в «JAVA»