Всем привет. Есть список обьектов 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*/)
Правильный ли такой подход, или есть наглядней/проще/правильный.