2017-01-14 1 views
1

Если у меня есть класс Book, который имеет внутри него список объектов Page, как я могу сгенерировать коллекцию объектов Page с учетом коллекции объектов Book с использованием функций Java 8, таких как потоки, коллекторы, lamdas и т. Д.? Я знаю, как это сделать с использованием методов pre-Java 8, но я хотел бы, чтобы это было сделано с одной строкой с функциями Java 8.Как использовать функции Java 8 для генерации коллекции?

спасибо.

ответ

2

Предполагая, что Book имеет getPages метод, возвращающий коллекцию Page с, вам нужно использовать flatMap метод «придавить» коллекции страниц внутри коллекции книг:

Stream<Page> pages = books.stream().flatMap(b -> b.getPages().stream()); 

Это производит поток; если вам нужна коллекция, используйте сборщик списков для ее создания.

+0

Это работало отлично, flatMap был недостающим компонентом. Я зашел в тупик с книгой. Спасибо за конструктивный ответ. – ITWorker

 Смежные вопросы

  • Нет связанных вопросов^_^