8. Расскажите про метод flatMap(). плоский маппинг

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().

Все вопросы по теме: список

Все темы: список

Вопросы/замечания/предложения/нашли ошибку:напишите мне

Report Page