有一个可选的可选列表,例如:
Optional<List<Optional<String>>> optionalList = Optional.of(
Arrays.asList(
Optional.empty(),
Optional.of("ONE"),
Optional.of("TWO")));
如何遍历 optionalList
打印出字符串的 ONE
和 TWO
?
拥有可选的可选流怎么样?
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);
原文由 Sara Vino 发布,翻译遵循 CC BY-SA 4.0 许可协议
首先,检查
Optional
是否存在。如果是,则流式传输列表并过滤非空列表并打印每个列表。流案例也几乎相似