Задать вопрос
@AlexFox2019
Junior Java Developer

Как правильно перебрать вложенные Java Map?

Всем привет. Есть список обьектов User(name, age, departmant, position, salary) которые нужно группировать
по полям, допустим name, departmant, position, salary.
Группировку делаю так
Map<String, Map<String, Map<String, Map<String, List<User>>>>> collect = listUsers.stream()
                                .collect(groupingBy(User::getDepartmant,
                                        groupingBy(User::getPosition,
                                                groupingBy(User::getName,
                                                        groupingBy(User::getSalary)))));

Нужно получить доступ к List и дальше работать с ним.
Делаю так
collect.values().stream()
                                .flatMap(hm -> hm.values().stream())
                                .flatMap(hm -> hm.values().stream())
                                .flatMap(hm -> hm.values().stream())
                                .filter(users -> /*condition*/)

Правильный ли такой подход, или есть наглядней/проще/правильный.
  • Вопрос задан
  • 402 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Neonoviiwolf
Flutter developer
Это треш, создайте класс - сущность, который будет хранить нужные данные и из него можно сделать список или мапу или что-то подобное.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы