Коллекция для вложенного списка - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь использовать функции Java 8 для своего вложенного списка.

У меня есть список объектов.У объекта есть поле списка.Мне нужно получить значения этого списка и добавить его в другой список.

List<String> strings = new ArrayList<>();
strings.add("s1");
strings.add("s2");

List<Foo> foos = new ArrayList<>();
foos.add(new Foo(strings));

Я вышел с этим подходом foos.stream().map(Foo::getStrings).collect(Collectors.toList());

Этот подход работает, если я установил свой новыйсписок, подобный этому:

List<List<String>> newList = foos.stream().map(Foo::getStrings).collect(Collectors.toList());

Я бы хотел, чтобы newList был таким: List<String> newList = ....;, поэтому s1, s2, из strings список будет отображаться в newList.

1 Ответ

0 голосов
/ 11 июня 2018

Используйте flatMap.Заменить:

.map(Foo::getStrings)

на

.flatMap(f -> f.getStrings().stream())

или

.map(Foo::getStrings).flatMap(Collection::stream)
...