Список > к карте - PullRequest
       5

Список > к карте

0 голосов
/ 18 апреля 2020

У меня есть список карт List<Map<String, Object>>. Я хочу перейти на Map<String, String[]> Может кто-нибудь, пожалуйста, дайте мне знать, как конвертировать?

        List<Map<String, Object>> currentList = new ArrayList<Map<String, Object>>();
        Map<String, Object> currMap = new HashMap<String, Object>();

        currMap.put("A", "ABC");
        currMap.put("B", "PQR");
        currMap.put("C", "XYZ");
        currentList.add(currMap);

        currMap.put("A", "123");
        currMap.put("B", "456");
        currMap.put("C", "789");
        currentList.add(currMap);

        currMap.put("A", "OOO");
        currMap.put("B", "ZZZ");
        currentList.add(currMap);

В будущем: "A", ["AB C", "123", "OOO"], "B", ["PQR", "456", "ZZZ"], "C", ["XYZ", "789", ""]

1 Ответ

0 голосов
/ 18 апреля 2020

Один из способов использования потоков будет:

currentList.stream()
            .flatMap(map -> map.entrySet().stream())
            .collect(Collectors.groupingBy(Entry::getKey, Collectors.mapping(Entry::getValue, Collectors.toList())));

Это приведет к:

{A=[ABC, 123, OOO], B=[PQR, 456, ZZZ], C=[XYZ, 789]}

В качестве идентификатора способ генерации currentList в примере не приведите список карт, как вы, вероятно, ожидаете. В итоге у вас будет 3 ссылки на одну и ту же карту в списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...