Я делаю тестовый пример, чтобы использовать Optional.ofNullable и Stream вместе, и я столкнулся с способами сделать то же самое, оба имеют одинаковый вывод.
List<String> list1 = List.of("abc","abc");
Optional.ofNullable(list1).stream().flatMap(List::stream).map(e -> e.concat("def")).collect(Collectors.toList());
List<String> list2 = List.of("abc","abc");
Stream<String> stream = Optional.ofNullable(list2).map(List::stream).orElseGet(Stream::empty);
stream.map(e-> e.concat("def")).collect(Collectors.toList());
Мой вопрос, почему на В первом примере я использую flatMap и map , а во втором я использую две map * , чтобы выполнить ту же работу. Если я попытаюсь использовать две карты в первом примере, это не сработает.