A very common use case when dealing with options...
val values = List(Some("a"), None, Some("b")).flatten
List<Optional<String>> optionalValues = Arrays.asList(Optional.of("a"), Optional.empty(), Optional.of("b"));
List<String> values = optionalValues.stream()
.flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty())
.collect(Collectors.toList());
val values = listOf("a", null, "b").filterNotNull()
Note : it's different to use null in Kotlin because listOf("a", null, "b")will be infered as a List<String?>, ? is the replacement for Option/Optional in Kotlin and allows to use null safely.