Bereichs- und Aggregationsoperationen
range, sum, average, summaryStatistics
Bereichs- und Aggregationsoperationen ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Bereiche erzeugen
IntStream.range(start, end) erzeugt aufeinanderfolgende Ganzzahlen von start bis, aber nicht einschließlich end.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntStream.range(0, 5).forEach(System.out::println);
}
}rangeClosed schließt das Ende ein
IntStream.rangeClosed(start, end) schließt den letzten Wert ein, sodass rangeClosed(1, 5) die Werte 1 bis 5 liefert.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sum = IntStream.rangeClosed(1, 5).sum();
System.out.println(sum);
}
}Indexschleifen ersetzen
Bereiche sind ein eleganter Ersatz für indexbasierte for-Schleifen, wenn Sie Arraypositionen durchlaufen.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
String[] names = {"a", "b", "c"};
IntStream.range(0, names.length)
.forEach(i -> System.out.println(i + ": " + names[i]));
}
}sum
sum addiert alle Elemente und gibt ein primitives Ergebnis zurück.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int total = IntStream.rangeClosed(1, 100).sum();
System.out.println(total);
}
}average
average gibt ein OptionalDouble zurück, weil der Stream leer sein könnte.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
double avg = IntStream.of(2, 4, 6, 8).average().getAsDouble();
System.out.println(avg);
}
}min und max
min und max geben OptionalInt zurück. Verwenden Sie getAsInt, wenn Sie wissen, dass der Stream nicht leer ist.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int hi = IntStream.of(3, 9, 1, 7).max().getAsInt();
int lo = IntStream.of(3, 9, 1, 7).min().getAsInt();
System.out.println(lo + " .. " + hi);
}
}count
count gibt die Anzahl der Elemente als long zurück.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
long n = IntStream.rangeClosed(1, 50).filter(x -> x % 3 == 0).count();
System.out.println(n);
}
}summaryStatistics
summaryStatistics berechnet Anzahl, Summe, Minimum, Durchschnitt und Maximum in einem einzigen Durchlauf und gibt ein IntSummaryStatistics zurück.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics stats = IntStream.of(5, 10, 15, 20).summaryStatistics();
System.out.println(stats);
}
}Einzelne Statistiken auslesen
Das Zusammenfassungsobjekt stellt getCount, getSum, getMin, getMax und getAverage bereit.
import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
IntSummaryStatistics s = IntStream.rangeClosed(1, 10).summaryStatistics();
System.out.println("count=" + s.getCount());
System.out.println("avg=" + s.getAverage());
System.out.println("max=" + s.getMax());
}
}Bereich und Aggregation kombinieren
Bereiche und Aggregationen lassen sich natürlich kombinieren: Erzeugen Sie Werte, transformieren Sie sie und reduzieren Sie sie anschließend auf eine einzelne Zahl.
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
int sumOfSquares = IntStream.rangeClosed(1, 4)
.map(n -> n * n)
.sum();
System.out.println(sumOfSquares);
}
}LongStream-Aggregationen
LongStream bietet dieselben Methoden für Bereiche und Aggregationen und gibt ein LongSummaryStatistics zurück.
import java.util.stream.LongStream;
public class Main {
public static void main(String[] args) {
long sum = LongStream.rangeClosed(1, 1000).sum();
System.out.println(sum);
}
}Schnelltest
Wie unterscheiden sich range und rangeClosed?
Zusammenfassung
Sie haben primitive Bereiche erzeugt und zusammengefasst:
rangeschließt das Ende aus;rangeClosedschließt es ein.- Aggregationen:
sum,average(OptionalDouble),min/max(OptionalInt),count. summaryStatisticsberechnet sie alle in einem Durchlauf.
Häufig gestellte Fragen
Ist die Lektion „Bereichs- und Aggregationsoperationen“ kostenlos?
Ja — der vollständige Text von „Bereichs- und Aggregationsoperationen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Bereichs- und Aggregationsoperationen“?
range, sum, average, summaryStatistics Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Java Academy zu starten?
Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Bereichs- und Aggregationsoperationen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?
Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- IntStream und LongStream
- Bereichs- und Aggregationsoperationen
- Zu und von Object-Streams abbilden
- Primitive Streams erzeugen