Java 9: Optional.stream to flatten present values

Optional.stream yields 0 or 1 element, ideal inside a flatMap to drop empties.

Code
List<Optional<String>> opts = List.of(
        Optional.of("a"), Optional.empty(), Optional.of("c"));
List<String> present = opts.stream()
        .flatMap(Optional::stream)
        .toList();
System.out.println(present);
Output
[a, c]
Advertisement

Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.

Published 2026-07-26