Ich bin noch ein Anfänger in der Programmierung und werde eine Reihe schreiben, die Beschreibungen enthält, von denen ich dachte, ich könnte sie verwenden oder verwenden, wenn ich Java in einem ** Memorandum ** herstelle. Es ist nur ein Memorandum, also habe ich vor, es für mich selbst zu verwenden. Dieses Mal, das ist der erste Beitrag, wird es wie *** sein. Schreiben wir von den Grundlagen und erinnern uns an die transzendentalen Grundlagen.
Zunächst eine Beschreibung, die die allgemeine For-Anweisung durch Stream ersetzt Angenommen, Sie haben eine Liste mit den folgenden entsprechenden Nummern:
List<Integer> iList = Arrays.asList(1,4,5,7,14,15,77,98,100,103);
Ich möchte von hier aus nur gerade Zahlen ausgeben. Unten finden Sie den Code in einer normalen erweiterten For-Anweisung, die nur gerade Zahlen ausgibt.
for (Integer i : iList) {
if (i % 2 == 0) {
System.out.println(i);
}
}
Ausgabeergebnis
4
14
98
100
Wenn Sie das oben genannte durch Stream ersetzen ...
iList.stream().filter(i -> i % 2 == 0).forEach(i -> System.out.println(i));
Ausgabeergebnis
4
14
98
100
Hier finden Sie eine grobe Beschreibung Ihrer Arbeit mit Stream zuerst
iList.stream()
Also, hol den Stream
.filter(i -> i % 2 == 0)
Führen Sie eine Operation aus, die als Zwischenoperation bezeichnet wird
.forEach(i -> System.out.println(i));
Die letzte Operation, die als Beendigungsoperation bezeichnet wird, wird um ausgeführt.
Dieser Fluss von "Zwischenoperation" ⇒ "Beendigungsoperation" ist die Basis von Stream, also Wenn Sie sich so gut erinnern, ist es einfach zu googeln, auch wenn Sie ein wenig vergessen, wie man schreibt.
Wie Sie sehen können, haben die obige For-Anweisung und Stream das gleiche Verarbeitungsergebnis, aber im Detail scheint es, dass das, was sie tatsächlich tun, unterschiedlich ist.
*** Für die vertraute For-Aussage *** Schleife iList nur für die Elementanweisung von iList, und wenn das Element einen durch 2 teilbaren Wert hat, gib ihn aus, sonst wird er nicht ausgegeben und geht zum nächsten Element! Verarbeitung wie.
*** Für Stream *** Geben Sie die Bedingungen an, die mit der für die Zwischenoperation verwendeten "Filtermethode" gefiltert werden sollen. Extrahieren Sie die nach "für jede Methode" gefilterten Elemente nacheinander und führen Sie sie aus! Verarbeitung wie (Ausgabe in diesem Fall).
Es gibt verschiedene Arten von Zwischenoperationen und Beendigungsoperationen. Wenn Sie diese kombinieren, können Sie verschiedene Verarbeitungsschritte ausführen, die Sie schreiben möchten. Ich verwende oft die Zwischenoperation "Map-Methode" (Konvertierung) und die Beendigungsoperation "Sammeln" (Listengenerierung).
Ich werde als nächstes schreiben, welche Art von Operationsmethode zu welcher Zeit verwendet werden soll.
Recommended Posts