[JAVA] Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream

Image de ce que vous souhaitez mettre en œuvre

** Avant conversion: **

String[] strArray = {"pomme", "Mandarine", "banane"};

** Après conversion: **

Fruit ringo = new Fruit("pomme");
Fruit mikan = new Fruit("Mandarine");
Fruit banana = new Fruit("banane");
Fruit[] fruitArray = {ringo, mikan, banana};

environnement

OS:Windows 10 Java:Oracle JDK 11 (Il est interprété qu'il peut être utilisé gratuitement pour des applications telles que le développement et les tests)

(Référence) Dans le cas de la déclaration ordinaire

String[] strArray = {"pomme", "Mandarine", "banane"};
Fruit[] fruitArray = new Fruit[strArray.length];
for(int i = 0; i < strArray.length; i++) {
    fruitArray[i] = new Fruit(strArray[i]);
}

Lors de l'utilisation de l'API Stream

Fruit[] fruitArray = Arrays.stream(strArray)  // (1)
    .map(Fruit::new)                          // (2)
    .toArray(Fruit[]::new);                   // (3)

Expliquez légèrement

(1) Convertir du tableau String en flux String. (Chaîne [] ⇒ Stream \ <Chaîne >)

(2) Générez une classe Fruit pour chaque élément Stream avec la méthode map. Puisqu'il n'y a qu'un seul argument de nom de chaîne dans le constructeur, cette description est correcte. (Bien sûr, l'expression lambda s-> nouveau (s) fruit (s) est également OK.)

(3) Convertissez en tableau avec la méthode toArray.

Résumé

Si vous n'y êtes pas habitué, l'instruction for est plus facile à comprendre et à écrire, Une fois que vous vous y serez habitué, le code sera plus court et plus facile à écrire à l'aide de l'API Stream.

Je suis encore un débutant dans Stream, donc je veux me forcer à m'y habituer rapidement.

Recommended Posts

Comment convertir un tableau de chaînes en un tableau d'objets avec l'API Stream
Convertir un tableau de chaînes en nombres
Convertir un tableau bidimensionnel au format csv avec l'API Java 8 Stream
Comment demander en passant un tableau à une requête avec le client HTTP de Ruby
[Swift5] Comment obtenir un tableau et un ensemble de différences entre les tableaux
L'histoire de toString () commençant par le passage d'un tableau à System.out.println
[Java] Comment convertir un élément d'un tableau de type String en type Int
Convertit le tableau d'erreurs.full_messages en caractères et sortie
Comment sortir le standard d'un tableau avec for Each
Comment utiliser git avec la puissance de jgit dans un environnement sans commandes git
Comment ajouter des éléments sans spécifier la longueur du tableau
Il est maintenant temps de commencer avec l'API Stream
Convertir un tableau potentiellement nul en flux
[java8] Pour comprendre l'API Stream
Comment spécifier un tableau pour la valeur de retour / l'argument d'une méthode dans le fichier IDL CORBA
Essayez d'imiter l'idée d'un tableau à deux dimensions avec un tableau à une dimension
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
Convertir un tableau de chaînes en une liste d'entiers en Java
Comment obtenir la longueur d'un fichier audio avec Java
[Rails] Comment convertir l'URI de l'image envoyée par http en https lors de l'utilisation de l'API Twitter
[Java] Comment rechercher des valeurs dans un tableau (ou une liste) avec la méthode contains
Comment recadrer une image avec libGDX
Comparer les éléments d'un tableau (Java)
Comment déterminer le nombre de parallèles
Comment trier une liste de SelectItems
J'ai essayé de résumer l'API Stream
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
[Swift] Résumé de la suppression des éléments d'un tableau (mémo personnel)
[Java] Comment transformer un tableau à deux dimensions avec une instruction for étendue
Comment accéder directement à Socket avec la fonction TCP de Spring Integration
Obtenez le type d'un élément d'un tableau pour déterminer s'il s'agit d'un tableau
[swift5] Comment changer la couleur de TabBar ou la couleur de l'élément de TabBar avec le code
Java8 / 9 Beginners: Streaming API addiction points et comment les gérer
Je voulais écrire un processus équivalent à une instruction while avec l'API Java 8 Stream
Comment trouver la cause de l'erreur Ruby
[java] Résumé de la gestion des chaînes de caractères
Personnalisez la répartition du contenu de Recyclerview
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Comment utiliser un tableau pour les clés HashMap
Convertissez une chaîne en un tableau caractère par caractère avec Swift
Comment obtenir le jour d'aujourd'hui
Sortie de la façon d'utiliser la méthode slice
[Java] Comment obtenir facilement la plus longue chaîne de caractères d'ArrayList à l'aide de stream
Calculer le score de similarité des chaînes de caractères avec JAVA
Rails6 Je veux créer un tableau de valeurs avec une case à cocher
[Note] [Débutant] Comment écrire lors de la modification de la valeur d'un élément de tableau dans une phrase répétée de Ruby
Comment créer un environnement [TypeScript + Vue + Express + MySQL] avec Docker ~ Vue ~
Comment créer une API avec GraphQL et Rails
Comment afficher le résultat du remplissage du formulaire
Premiers pas avec Doma - Introduction à l'API Criteria
[Rails] Comment créer un environnement avec Docker
Si vous utilisez SQLite avec VSCode, utilisez l'extension (comment voir le fichier binaire de sqlite3)
Comment trouver la valeur totale, la valeur moyenne, etc. d'un tableau à deux dimensions (tableau multidimensionnel) -java
J'ai essayé de vérifier le fonctionnement de la requête http (Put) avec Talented API Tester
[Docker] Comment voir le contenu des volumes. Démarrez un conteneur avec les privilèges root.
Comment définir une limite de relance pour sidekiq et notifier les files d'attente mortes avec Slack