8. Расскажите про метод flatMap(). плоский маппинг
UNKNOWNПлоское отображение выполняется тогда, когда из одного элемента нужно получить несколько.
Stream
.of("H e l l o", "w o r l d !")
.flatMap((p) -> Arrays.stream(p.split(" ")))
.toArray(String[]::new);//["H", "e", "l", "l", "o", "w", "o", "r", "l", "d", "!"]
Например, в примере выше мы выводим название телефона и его цену. Но что, если мы хотим установить для каждого телефона цену со скидкой и цену без скидки. То есть из одного объекта Phone нам надо получить два объекта с информацией, например, в виде строки. Дляэтого применим flatMap:
Stream<Phone> phoneStream = Stream.of(new Phone("iPhone 6 S", 54000), new Phone("Lumia 950", 45000),new Phone("Samsung Galaxy S 6", 40000));
phoneStream
.flatMap(p->Stream.of(String.format("название: %s цена без скидки: %d", p.getName(), p.getPrice()), String.format("название: %s цена со скидкой: %d", p.getName(), p.getPrice()-(int)(p.getPrice()*0.1))))
.forEach(s->System.out.println(s));
Предыдущий вопрос: 7. Расскажите про метод map() маппинг из одного в другое
Следующий вопрос: 9. Чем отличаются методы map() и flatMap().
Все вопросы по теме: список
Все темы: список
Вопросы/замечания/предложения/нашли ошибку:напишите мне