Obtenir une collection non vide à partir d'un flux facultatif avec java

C'était assez ennuyeux d'essayer d'obtenir quelque chose de non vide du flux Optional en java. Je n'avais pas d'autre choix que de faire de mon mieux avec filter () '' ou flatMap () '' comme indiqué sur https://www.baeldung.com/java-filter-stream-of-optional. Cependant, cela est devenu beaucoup plus facile avec l'ajout de Optional :: stream de java 9.

Supposons maintenant qu'il y ait une fonction qui renvoie «« Option.empty () »« s'il s'agit d'un caractère vide, comme illustré ci-dessous. Supposons que vous souhaitiez l'appliquer à chaque élément d'une liste de chaînes pour obtenir une liste de caractères non vides.

	static Optional<String> map(String s) {
		if (s.length() == 0) {
			return Optional.empty();
		}
		return Optional.of(s);
	}

C'est comme ça de travailler dur avec filter </ code>.

		List.of("1", "2", ,"", "3").stream()
			.map(Hoge::map)
			.filter(Optional::isPresent)
			.map(Optional::get)
		    .collect(Collectors.toList());

En utilisant `` Optional :: stream``` de java 9, c'est le cas.

		List.of("1", "2", "", "3").stream()
			.map(Hoge::map)
			.flatMap(Optional::stream)
			.collect(Collectors.toList());

Recommended Posts

Obtenir une collection non vide à partir d'un flux facultatif avec java
Obtenez facilement des entiers à partir des propriétés système en Java
[Java] Récupère des valeurs de manière aléatoire dans un tableau
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Restez coincé dans un Java Primer
Obtenir l'historique du serveur Zabbix en Java
Java 9 Facultatif :: stream
GetInstance () à partir d'une classe @Singleton dans Groovy à partir de Java
Comment obtenir une classe depuis Element en Java
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Appeler un programme écrit en Swift depuis Processing (Java)
[Développement Android] Obtenez des images du serveur avec Java et définissez-les dans ImageView! !!
Obtenez les prévisions météorologiques de Watson Weather Company Data avec Java simple
API Java Stream en 5 minutes
Rechercher un sous-ensemble en Java
Comment stocker des chaînes de ArrayList à String en Java (personnel)
[Java] Obtenir KClass en Java [Kotlin]
Qu'est-ce qu'une collection Java?
Jetez un œil à Kotlin dans une perspective Java efficace
Collecte de copies approfondies en Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (1)
Convertir un tableau de chaînes en une liste d'entiers en Java
[Note] Ce que j'ai appris en six mois grâce à des inexpérimentés (Java) (3)
Obtenez l'URL publique du fichier privé de Flickr en Java
Comment obtenir la longueur d'un fichier audio avec Java
Élément Java effectif 25 Sélectionnez une liste dans un tableau Première moitié
J'ai envoyé un e-mail en Java
3 Implémentez un interpréteur simple en Java
J'ai créé un PDF avec Java.
Obtenir le pays à partir de l'adresse IP (Java)
Obtenir des valeurs de carte nulles en Java
Exécuter le fichier de commandes à partir de Java
Accéder à Teradata depuis une application Java
Essayez une expression If en Java
Un exemple simple de rappels en Java
J'ai fait une annotation en Java.
Utilisez-vous Stream en Java?
Exécuter un processus externe en Java
Je veux ForEach un tableau avec une expression Lambda en Java
[Java] Générez une liste restreinte à partir de plusieurs listes à l'aide de l'API Stream
Lors de l'appel de println etc. à partir d'un fichier de classe Java externe en traitement
Étudiez le Deep Learning à partir de zéro en Java.
Lors de la recherche de plusieurs dans un tableau Java
Obtenez le résultat de POST en Java
Importance de l'interface apprise de la collection Java
Traitement des données à l'aide de l'API de flux de Java 8
Appel de méthodes Java à partir de JavaScript exécutées en Java
Essayez d'utiliser l'API Stream en Java
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
Mapper sans utiliser de tableau en java
Inverser la clé de la valeur dans la carte Java
[Création] Un mémorandum sur le codage en Java
Java crée un tableau dans un document Word
Java crée un graphique circulaire dans Excel
Qu'est-ce qu'une classe en langage Java (2 /?)
Remplacez List <Optional <T >> par Optional <List <T >> en Java
Essayez d'exécuter Kubernetes Job à partir de Java