Sumando valores de mapa por cada tecla

Adam Amin:

Tengo los siguientes mapas:

{21=0, 22=2, 11=0, 12=0}
{21=3, 22=0, 11=6, 12=3}
{21=6, 22=0, 11=7, 12=0}
{21=5, 22=7, 11=9, 12=1}

El código siguiente devuelve estos mapas:

for (Chrom t: obj.getChroms) {
    Map<Integer, Integer> result = t.getExecutionCount();
}

El método getExecutionCount()devuelve un solo mapa. Para el ejemplo que he dado anteriormente, tengo cuatro chroms donde cada chrom voluntad devuelve un solo mapa.

Me gustaría resumir los valores de cada tecla por separado para que el resultado final será:

21 = 14
22 = 9
11 = 22
12 = 4

¿Es posible utilizar la corriente para hacer eso? Si no es así, ¿cómo puedo hacer eso?

TAlex:

Prueba esto:

    List<Map<Integer, Integer>> maps;

    Map<Integer, Integer> result = maps.stream()
            .map(Map::entrySet)
            .flatMap(Collection::stream)
            .collect(Collectors.groupingBy(
                    Map.Entry::getKey,
                    Collectors.summingInt(Map.Entry::getValue)));

Supongo que te gusta

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