optionalsのオプションのリスト/ストリームをトラバースする方法 - Javaのラムダ

サラ・ワイン:

オプションのオプションのリストを持つことのようです。

Optional<List<Optional<String>>> optionalList = Optional.of(
    Arrays.asList(
        Optional.empty(),
        Optional.of("ONE"),
        Optional.of("TWO")));

トラバースする方法optionalList文字列のプリントアウトするONETWO?を

Optionalsのオプションの流れを持っていることについては何?

Optional<Stream<Optional<String>>> optionalStream = Optional.of(
    Stream.of(
        Optional.empty(),
        Optional.of("ONE"),
        Optional.of("TWO")));

更新:答えてくれてありがとう、optionalStreamためのソリューション(非ネストされました):

optionalStream
    .orElseGet(Stream::empty)
    .filter(Optional::isPresent)
    .map(Optional::get)
    .forEach(System.out::println);
user7:

場合はまず、チェックOptionalが存在します。yesの場合は、リストをストリーミングし、非空のものをフィルタリングし、それらのそれぞれを印刷します。

optionalList.ifPresent(list -> list.stream()
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(System.out::println));

ストリームの場合のほぼ類似しすぎ

optionalStream.ifPresent(stream -> stream
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(System.out::println));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=182739&siteId=1