lambda java - comment parcourir la liste option / flux de optionals

Sara vin:

Avoir une liste facultative de FACULTATIVE comme:

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

Comment traverser optionalListpour imprimer les années de chaîne ONEet TWO?

Qu'en est-il d'avoir un flux optionnel de Optional?

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

Mise à jour: Merci pour les réponses, solution pour optionalStream (non imbriquée):

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

Tout d' abord, vérifier si le Optionalest présent. Si oui, alors la liste flux et filtrer les non vides et imprimer chacun d'eux.

optionalList.ifPresent(list -> list.stream()
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(System.out::println));

La quasi-similaire pour le cas de flux trop

optionalStream.ifPresent(stream -> stream
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(System.out::println));

Je suppose que tu aimes

Origine http://43.154.161.224:23101/article/api/json?id=182740&siteId=1
conseillé
Classement