Hallöchen,
ich steige gerade bei den Streams ein. Soweit habe ich den Sinn verstanden und auch grob, wie das funktioniert.
Jetzt habe ich folgendes Problem:
Ein Array mit 5 durch Eingaben generierten Zahlen soll nach Umwandlung in einen Stream die größte Zahl ermitteln und ausgeben, taucht die 0 auf, wird der Stream beendet. Warum bekomme ich bei dem Code
in der Konsole
1 (Eingabe)
1 (Eingabe)
1 (Eingabe)
5 (Eingabe)
2 (Eingabe)
OptionalInt[5] (Ausgabe)
oder
1 (Eingabe)
2 (Eingabe)
0 (Eingabe)
3 (Eingabe)
4 (Eingabe)
OptionalInt[2] (Ausgabe)
die jeweiligen genannten Ausgaben und nicht einfach den Max-Wert oder gar nichts? Der Stream, der den gesamten Array ausgibt (im Bsp. auskommentiert) funktioniert ja so wie gewollt. Da ist die Ausgabe einfach 1 1 1 5 2.
Und dann noch die allgemeinere Frage zu Streams:
Gehören die im Alltag zum Standard-Werkzeug und finden die sich quasi überall oder sind die eher seltener anzutreffen? Auf den ersten Blick wirkt das Thema auf mich etwas abschreckend. Viel neues zu lernen und tut "nur" das, was ich anders auch machen kann - aber etwas mehr im "clean code" (oder?).
ich steige gerade bei den Streams ein. Soweit habe ich den Sinn verstanden und auch grob, wie das funktioniert.
Jetzt habe ich folgendes Problem:
Ein Array mit 5 durch Eingaben generierten Zahlen soll nach Umwandlung in einen Stream die größte Zahl ermitteln und ausgeben, taucht die 0 auf, wird der Stream beendet. Warum bekomme ich bei dem Code
Java:
import java.util.Arrays;
import java.util.Scanner;
import java.util.stream.*;
public class DerArray {
//hier käme die main:
int [] ar = new int [5];
public void arFuellen() {
for (int i = 0; i < ar.length; i++) {
ar[i] = new java.util.Scanner(System.in).nextInt();;
}
}
public void arStream() {
//Arrays.stream(ar).forEach(System.out::println);
System.out.println(Arrays.stream(ar)
.takeWhile(x -> x != 0)
.max());
}
}
in der Konsole
1 (Eingabe)
1 (Eingabe)
1 (Eingabe)
5 (Eingabe)
2 (Eingabe)
OptionalInt[5] (Ausgabe)
oder
1 (Eingabe)
2 (Eingabe)
0 (Eingabe)
3 (Eingabe)
4 (Eingabe)
OptionalInt[2] (Ausgabe)
die jeweiligen genannten Ausgaben und nicht einfach den Max-Wert oder gar nichts? Der Stream, der den gesamten Array ausgibt (im Bsp. auskommentiert) funktioniert ja so wie gewollt. Da ist die Ausgabe einfach 1 1 1 5 2.
Und dann noch die allgemeinere Frage zu Streams:
Gehören die im Alltag zum Standard-Werkzeug und finden die sich quasi überall oder sind die eher seltener anzutreffen? Auf den ersten Blick wirkt das Thema auf mich etwas abschreckend. Viel neues zu lernen und tut "nur" das, was ich anders auch machen kann - aber etwas mehr im "clean code" (oder?).