Обработка List внутри Map через Stream API
Всем привет! Есть задача получить новый список объектов из объектов внутри map за один проход через Stream API.
- Есть
Map<Boolean, List<User>>in; - Есть
class UserNew(User user, Boolean b); - Нужно получить
List<UserNew> из in(либо как промежуточный вариант, хотя быMap<User, Boolean>).
Проблема в том, что как только из списков внутри map делаю stream, уже не могу вернуться к keySet().
Делал так:
List<UserNew> result=
in.entrySet().stream()
.flatMap(entry -> entry.getValue().stream())
.map(user -> {
return new UserNew(
user,
__вот здесь нужно получить key из map__);
})
.collect(Collectors.toList())
Важное условие сделать это за один проход.
Ответы (1 шт):
Автор решения: Дмитрий
→ Ссылка
Можно обмануть судьбу))
List<UserNew> result = in.entrySet().stream()
.flatMap(entry -> entry.getValue().stream().map(user->new UserNew(user, entry.getKey())))
.collect(Collectors.toList());