У меня есть DTO
с несколькими атрибутами, такими как id
, name
, desc
и т. Д.
У него есть геттеры и сеттеры для всех его атрибутов.
Я получаю Page<MyDto>
от службы, которая мне нужна для группировки DTO на основе атрибута name
.
Сначала я конвертирую Page<MyDto>
в List<MyDto>
, используя page.getContent
.
Мне нужно преобразовать List
в Map<String, Object>
(не Map<String,String>
) , сгруппировав те же names
, используя Java8
.
.
Я нашел несколько примеров, но они не решили мою проблему. Если это возможный дубликат, пожалуйста, прокомментируйте со ссылкой на оригинальный вопрос.
.
Как сгруппировать список MyDto
в карту?
, где ключами являются имена (String
),и значения будут Array<MyDto>
для каждого имени.
Например:
.
If `List<MyDto>` is :
[
{"id":1, "name":"albert", "desc":"science"},
{"id":2, "name":"george", "desc":"econ"},
{"id":3, "name":"christ", "desc":"math"},
{"id":4, "name":"george", "desc":"literature"} // george repeats twice
]
Выход Map
должен быть:
{
"george":
[
{"id":2, "name":"george", "desc":"econ"},
{"id":4, "name":"george", "desc":"literature"}
],
"christ":
[
{"id":3, "name":"christ", "desc":"math"}
],
"albert":
[
{"id":1, "name":"albert", "desc":"science"}
]
}
Любая помощь приветствуется, спасибо заранее,