DMCG:
eu tenho um
List<Map<String, Object>>
vindo de uma chamada Primavera NamedParameterJdbcTemplate queryForList. O retorno de dados se parece com isso:
[{"id":5,"uid":6}, {"id":5,"uid":7}, {"id":6,"uid":8}, {"id":7,"uid":7}, {"id":8,"uid":7}, {"id":8,"uid":9}]
Como posso reorganizar os dados no seguinte formato?
{5:[6, 7], 6:[8], 7:[7], 8:[7, 9]}
Im olhando para retornar a Map<Integer, List<Integer>>
Alguém tem uma idéia de como posso conseguir isso? Qualquer ajuda muito apreciada ??
ernest_k:
Você pode mapear as chaves e valores para inteiros ao usar um agrupamento-by coletor:
List<Map<String, Object>> maps = null;
Map<Integer, List<Integer>> result = maps.stream()
.collect(Collectors.groupingBy(
map -> ((Number) map.get("id")).intValue(),
Collectors.mapping(map -> ((Number) map.get("uid")).intValue(),
Collectors.toList())));
Usando ((Number) map.get("id")).intValue()
apenas no caso do valor é um Longo.