小编Sar*_*ino的帖子

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

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

Optional<List<Optional<String>>> optionalList = Optional.of(
    Arrays.asList(
        Optional.empty(),
        Optional.of("ONE"),
        Optional.of("TWO")));
Run Code Online (Sandbox Code Playgroud)

如何遍历optionalList以打印出字符串的ONEand TWO

有一个可选的可选流怎么样?

Optional<Stream<Optional<String>>> optionalStream = Optional.of(
    Stream.of(
        Optional.empty(),
        Optional.of("ONE"),
        Optional.of("TWO")));
Run Code Online (Sandbox Code Playgroud)

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

optionalStream
    .orElseGet(Stream::empty)
    .filter(Optional::isPresent)
    .map(Optional::get)
    .forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)

java lambda optional java-8 java-stream

8
推荐指数
4
解决办法
2万
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1

lambda ×1

optional ×1