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