GCGD:
tengo un
List<Map<String, Object>>
proveniente de una llamada Primavera NamedParameterJdbcTemplate queryForList. El retorno de datos es el siguiente:
[{"id":5,"uid":6}, {"id":5,"uid":7}, {"id":6,"uid":8}, {"id":7,"uid":7}, {"id":8,"uid":7}, {"id":8,"uid":9}]
¿Cómo puedo reordenar los datos en el siguiente formato?
{5:[6, 7], 6:[8], 7:[7], 8:[7, 9]}
Im que busca a devolver una Map<Integer, List<Integer>>
Alguien tiene una idea de cómo puedo lograr esto? Cualquier ayuda muy apreciada ??
ernest_k:
Puede asignar claves y valores a números enteros, mientras que el uso de una agrupación por colector:
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()
sólo en caso de que el valor es una larga.