Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream использование переменной / 6 сообщений из 6, страница 1 из 1
29.01.2021, 14:34
    #40039907
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
Как правильно использовать переменную в stream, которая была выше?

Код: java
1.
2.
3.
4.
5.
6.
7.
List.stream()
   .map(dto -> ...)
   .map(...)
   .map(...)
   .map(...)
   .map(child -> func(dto))
...



Маленький пример
...
Рейтинг: 0 / 0
29.01.2021, 15:47
    #40039927
faustgreen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
-=Koba=-, Если я правильно понимаю стримы, то у нас:
1) В начале стрима "вылетает" элемент, который передается в метод map(dto -> ...), где он изменяется.
2) Измененное значение из пункта 1 передается в следующий метод map(...), где измененное значение изменяется еще раз .
3) И так повторяется до самого последнего метода map(child -> func(dto)), куда передается многократноизмененное состояние первоначального значения элемента стрима. А первоначальное состояние к этому моменту теряется.

Как я вижу решение:
1) Каким то образом тащим первоначальное состояние элемента через весь масиив методов стрима до последнего метода map(child -> func(dto)).
2) Или где то отдельно рассчитываем func(dto) например в Map<dto_id, value>, а в стриме тогда делаем что то типа:
Код: java
1.
2.
3.
4.
5.
6.
7.
List.stream()
   .map(dto -> ...)
   .map(...)
   .map(...)
   .map(...)
   .map(child -> map.get(child.getdto_id))
...
...
Рейтинг: 0 / 0
30.01.2021, 12:36
    #40040081
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
-=Koba=-
Как правильно использовать переменную в stream, которая была выше?

Код: java
1.
2.
3.
4.
5.
6.
7.
List.stream()
   .map(dto -> ...)
   .map(...)
   .map(...)
   .map(...)
   .map(child -> func(dto))
...



Маленький пример

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

но вообще, если тебе это надо то может ты как то не так процесс раскладываешь. либо сделай всё в одном мапе а не в 25-ти мапах.
...
Рейтинг: 0 / 0
30.01.2021, 12:38
    #40040082
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
Zzz79
Стрим это апи для работы с потоком данных,не очень понятно что именно ты хочешь сделать если честно
менять коллекцию чтобы потом использовать изначальное значение?)так не меняй тогда ее

очевидно что он хочет делать преобразования потока данных )))
...
Рейтинг: 0 / 0
30.01.2021, 13:18
    #40040089
rsl_tr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
-=Koba=-,
Код: java
1.
2.
3.
List.stream()
.peek(dto->...)
.peek(dto->...)
...
Рейтинг: 0 / 0
31.01.2021, 00:26
    #40040194
andreykaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Stream использование переменной
Выглядит как то сайд эффектно)) пиик для логгинга обычно используют а не для мутации внешних объектов
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Stream использование переменной / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]