Использование анонимной функции с картой потока - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть список объектов, которые я хочу изменить с помощью одного из сеттеров, плохо ли называть его на анонимной карте и каковы возможные побочные эффекты:

.stream().map(foo -> { foo.setDate(date);return foo;})
            .collect(Collectors.toList()));

Intellij говорит мнепереключите его на peek

.stream().peek(foo -> foo.setDate(date).collect(Collectors.toList()));

Но я читал, что peek следует использовать только для отладки.Стоит ли избегать обоих способов?

Ответы [ 2 ]

2 голосов
/ 05 апреля 2019

Почему бы вам не использовать foreach?

.forEach(foo -> { foo.setDate(date);})

Вам даже не нужно stream коллекцию.

Вы сэкономите на стоимости созданияновая коллекция.

2 голосов
/ 05 апреля 2019

Первый способ более чем приемлем в этом случае, важно то, что вы не изменяете источник потока структурно, то есть добавляете / удаляете в него элементы , а вы транслируете.

И на самом деле IntelliJ ошибается, map гораздо больше подходит, чем peek (это только для отладки).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...