サラ・ワイン:
オプションのオプションのリストを持つことのようです。
Optional<List<Optional<String>>> optionalList = Optional.of(
Arrays.asList(
Optional.empty(),
Optional.of("ONE"),
Optional.of("TWO")));
トラバースする方法optionalList
文字列のプリントアウトするONE
とTWO
?を
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));