0Pricing
Java Academy · Lektion

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:

  • range schließt das Ende aus; rangeClosed schließt es ein.
  • Aggregationen: sum, average (OptionalDouble), min/max (OptionalInt), count.
  • summaryStatistics berechnet 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

  1. IntStream und LongStream
  2. Bereichs- und Aggregationsoperationen
  3. Zu und von Object-Streams abbilden
  4. Primitive Streams erzeugen
← Zurück zu Java Academy