Cómo desenvolver una Lista <mapa>, el grupo de teclas Mapa y reducir a valores Mapa

Luca Foppiano:

He una List<Map<String, Double>>representación de algunos cálculos que son almacenados por 'categoría' en la Mapllave.

[{a: 1, b:2}, {a:4, b:5})

Quiero calcular el promedio de 'categoría', algo así como: {a: 2.5 , b: 3.5}.

Probé con algo como

.collector(Collectors.groupingBy..)

pero las primeras solicitudes de parámetros para proporcionar la función de discriminación, que no sé cómo pescar desde el Mapartículo.

¿Alguna idea de cómo hacer eso con Java8? ¡Gracias!

Eran :

Se puede utilizar flatMappara extraer todas las entradas de todos los mapas en una sola Stream. A continuación, puede agruparlos por la llave y se calcula el promedio de los valores.

Map<String,Double> average =
    list.stream()
        .flatMap(m->m.entrySet().stream())
        .collect(Collectors.groupingBy(Map.Entry::getKey,
                                       Collectors.averagingDouble(Map.Entry::getValue)));

Supongo que te gusta

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