gpt4 book ai didi

java lambda - 如何遍历可选列表/可选流

转载 作者:行者123 更新时间:2023-12-02 13:16:57 27 4
gpt4 key购买 nike

有一个可选的可选列表,例如:

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

如何遍历optionalList打印出字符串的ONETWO

拥有可选的可选流怎么样?

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

更新:感谢您的回答,可选流的解决方案(非嵌套):

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

最佳答案

首先,检查Optional是否存在。如果是,则流式传输列表并过滤非空列表并打印每个列表。

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));

关于java lambda - 如何遍历可选列表/可选流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668246/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com