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

Программисты 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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