Flux de traitement de base de Java Stream

Je suis encore un débutant en programmation, et je vais écrire une série qui énonce des descriptions que je pensais pouvoir utiliser ou utiliser lors de la fabrication de Java dans un ** mémorandum **. Ce n'est qu'un mémorandum, donc je prévois de l'utiliser pour moi-même. Cette fois, qui est le premier message, ce sera comme *** Écrivons à partir des bases et rappelons-nous les bases transcendantales.

Tout d'abord, une description qui remplace l'instruction For commune par Stream Supposons que vous ayez une liste avec les nombres appropriés suivants:

List<Integer> iList = Arrays.asList(1,4,5,7,14,15,77,98,100,103);

Je veux sortir uniquement des nombres pairs d'ici. Ce qui suit est le code d'une instruction For étendue ordinaire qui génère uniquement des nombres pairs.

		for (Integer i : iList) {
			if (i % 2 == 0) {
				System.out.println(i);
			}
		}

Résultat de sortie


4
14
98
100

Si vous remplacez ce qui précède par Stream ...

		iList.stream().filter(i -> i % 2 == 0).forEach(i -> System.out.println(i));

Résultat de sortie


4
14
98
100

Voici une idée approximative de ce que vous faites avec Stream premier

iList.stream()

Alors, récupérez le flux

.filter(i -> i % 2 == 0)

Effectuer une opération appelée opération intermédiaire avec

.forEach(i -> System.out.println(i));

L'opération finale appelée opération de terminaison est effectuée à.

Ce flux "opération intermédiaire" ⇒ "opération de terminaison" est la base de Stream, donc Si vous vous en souvenez beaucoup, il est facile de chercher sur Google même si vous oubliez un peu comment écrire.

Ainsi, comme vous pouvez le voir, l'instruction For et Stream ci-dessus ont le même résultat de traitement, mais en détail, il semble que ce qu'ils font réellement est différent.

*** Pour le familier pour déclaration *** Bouclez iList uniquement pour l'instruction d'élément d'iList, et si l'élément a une valeur divisible par 2, affichez-le, sinon il ne sortira pas et passera à l'élément suivant! Traitement tel que.

*** Pour Stream *** Préciser les conditions à filtrer par la "méthode de filtrage" utilisée pour l'opération intermédiaire, Extrayez un par un les éléments filtrés par la "méthode forEach" et exécutez-les! Traitement tel que (sortie dans ce cas).

Il existe différents types d'opérations intermédiaires et d'opérations de terminal, et en fonction de la combinaison, divers processus souhaités peuvent être exécutés. J'utilise souvent l'opération intermédiaire "map method" (conversion) et l'opération de terminaison "Collect" (génération de liste).

J'écrirai ensuite quel type de méthode d'opération utiliser à quel moment.

Recommended Posts

Flux de traitement de base de Java Stream
[Java] Traitement de flux
[Java11] Résumé du flux -Avantages du flux-
[Java] Stream API - Traitement de l'arrêt du flux
[Java] Stream API - Traitement intermédiaire de flux
Résumé du traitement des erreurs Java
Le traitement Java 8 Stream peut être omis jusqu'à présent!
À propos de Lambda, Stream, LocalDate de Java8
Utilisation de base de Java Facultatif Partie 1
[Connaissance de base de Java] Portée des variables
Viser une compréhension de base du flux de traitement récursif
[Java] Types d'exception et traitement de base
Structure de base du code source Java
Traitement des données à l'aide de l'API de flux de Java 8
[Traitement x Java] Création d'un environnement de développement
[Java] Résumé personnel des instructions conditionnelles (basique)
Connaissance de base de la rédaction de notes de développement Java
[Connaissance de base de Java] À propos de la conversion de type
Grammaire de base Java
Grammaire Java de base
Essayez Java 8 Stream
API Java Stream
Connaissances de base Java 1
[Java] Structure de base
[Java] [Basic] Glossaire
Grammaire de base Java
Grammaire de base Java
Étudier Java 8 (Stream)
[Java] Traitement multi-thread
Traitement intermédiaire de flux
[Java] Présentation de Java
Exercice Java [basique]
Terminaison du flux Java
Java 9 Facultatif :: stream
traitement itératif java
[Java] Résumé personnel des classes et méthodes (basique)
[Note] Java: vitesse de traitement de la liste par objectif
Revue Java ③ (utilisation de base des tableaux / type de référence)
[Java] Résumé de base de Java non couvert par Progate ~ Partie 1 ~
Collection expirée de java
Caractéristiques prévues de Java
Traitement des listes à comprendre avec des images - java8 stream / javaslang-
[Java] Importance de serialVersionUID
[Java] Remarque sur les collecteurs de flux
NIO.2 examen de Java
Avis sur Java Shilber
mémo de connaissances de base java
[Java] Génération de flux API-Stream
[Java] Type de données ①-Type de base
Utiliser des expressions Java lambda en dehors de l'API Stream
java --Unification des commentaires
Exemple d'implémentation d'un système de traitement LISP simple (version Java)
Traitement d'image: structure de base de l'image lue par le programme
Manipulation de base de la date Java
Conventions de dénomination Java de base
java (mérites du polymorphisme)
Pratique de l'API Java8 Stream