Java corriente Agrupación por List <Map <String, Object >> al mapa <Integer, Lista <entero >>

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.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223132&siteId=1
Recomendado
Clasificación