Как получить список Pojos из коллекции карты - PullRequest
0 голосов
/ 06 мая 2020
Collection<Map<String, MyObj>> 

Мне нужно собрать список MyObj из приведенной выше структуры. Например, у меня также было Collection<MyObj> - в этом для сбора списка MyObj я сделал ниже

List<MyObj> result = new ArrayList<>(MyObj);

работает нормально.

Как мне добиться аналогичного результата с Collection<Map<String, MyObj>>?

Ответы [ 3 ]

5 голосов
/ 06 мая 2020

Итак, вы хотите свести карты к единому списку значений? Вы можете легко сделать это с помощью потоков:

List<MyObj> list = collection.stream()
        .map(Map::values)
        .flatMap(Collection::stream)
        .collect(Collectors.toList());
2 голосов
/ 06 мая 2020

Вы можете сделать:

List<MyObj> result = collections.stream()
            .flatMap(m->m.values().stream())
            .collect(toList());
1 голос
/ 06 мая 2020

Попробуйте следующее:

  • Принимает значения карты, передает их в поток и собирает в список.
List<MyObj> obList = origList.stream()
            .flatMap(m->m.values().stream())
            .collect(Collectors.toList());
...