Optional.stream yields 0 or 1 element, ideal inside a flatMap to drop empties.
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);
[a, c]
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