valores de soma de Mapas usando correntes e recolher a lista

2hardproblems:

Se eu tenho uma lista de listas:

List<List<Map<String, Object>>> myList = new ArrayList<>();

List<Map<String, Object>> e1 = new ArrayList<>();
e1.add(new HashMap<String, Object>(){{put("test", 1);}});
e1.add(new HashMap<String, Object>(){{put("test", 6);}});

List<Map<String, Object>> e2 = new ArrayList<>();
e2.add(new HashMap<String, Object>(){{put("test", 9);}});
e2.add(new HashMap<String, Object>(){{put("test", 2);}});

myList.add(e1);
myList.add(e2);

Eu quero ser capaz de interagir sobre myListsomar os inteiros nas listas internas ( e1e e2) e retornar uma lista das somas:

List<Integer> result = [7, 11]
ernest_k:

Você consegue fazer isso:

List<Integer> result = myList.stream()
        .map(list -> list.stream()
                        .flatMapToInt(map -> map.values()
                                                .stream()
                                                .mapToInt(i -> (int) i))
                        .sum())
        .collect(Collectors.toList());

Acho que você gosta

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