CodeGym
Lernen
Kurse
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan
Community
Nutzer
Forum
Chat
Artikel
Erfolgsgeschichten
Aktivität
Bewertungen
Abonnements
Helles Design

Lektionen

  • Bewertungen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Mein Fortschritt
  • Kurse
  • Quest-Karte
  • Lektionen
  • Methoden groupingBy und partitioningBy (Collectors)

    JAVA 25 SELF
    Level 31,Lektion 2
    In dieser Vorlesung lernen wir, Daten in Streams mithilfe der Collector Collectors.groupingBy und Collectors.partitioningBy zu gruppieren: einfache und verschachtelte Gruppierung, Aufteilung nach einem booleschen Kriterium, die Wahl zwischen beiden, Verarbeitung des Ergebnisses und Lifehacks. An praktischen Beispielen mit Strings, Zahlen und Objekten sehen Sie, wie man aus einem Stream ( Stream API) eine Map der gewünschten Struktur erhält und wie man mit Klassifizierungsfunktionen ( Function) und Prädikaten ( Predicate) arbeitet. Am Ende – Analyse typischer Fehler.
    Verfügbar
  • Fortgeschrittene Aggregation: verschachtelte Gruppierungen

    JAVA 25 SELF
    Level 31,Lektion 3
    Praktischer Einstieg in verschachtelte Gruppierungen mit Streams und Collectors: wie man Collectors.groupingBy mit Aggregatoren ( maxBy, averagingInt, counting) kombiniert, Daten mit mapping transformiert, in Teilmengen über partitioningBy aufteilt und verschachtelte Map-Strukturen korrekt liest. Viele anschauliche Beispiele, Visualisierung der Ergebnisstruktur und Analyse typischer Fehler.
    Verfügbar
  • Fortgeschrittene Kollektoren

    JAVA 25 SELF
    Level 31,Lektion 4
    In dieser Vorlesung behandeln wir fortgeschrittene Techniken mit den Collectors des Stream API: verschachtelte Downstream-Kollektoren für groupingBy/ partitioningBy, Transformationen mit mapping, Filtern mit filtering, „Entfalten“ mit flatMapping, gleichzeitige Aggregation mit teeing (Java 12+) sowie das „Einfrieren“ von Collections über toUnmodifiableList/Set/Map und collectingAndThen. Wir zeigen praktische Pipeline-Beispiele und typische Fehler.
    Verfügbar
  • Methoden flatMap und mapMulti

    JAVA 25 SELF
    Level 32,Lektion 0
    In dieser Lektion klären wir den Unterschied zwischen der Umwandlung von Daten mit map, der „verflachenden“ Umwandlung mit flatMap und dem effizienteren Pendant seit Java 16+ – mapMulti. An praktischen Beispielen sehen wir, wie man verschachtelte Sammlungen zu Stream<String> statt Stream<Stream<String>> „entpackt“, wie man mit Optional über stream() arbeitet und wann man mapMulti für die Leistung wählt, ohne Zwischensequenzen zu erzeugen.
    Verfügbar
  • Methoden join und concat: Streams zusammenführen

    JAVA 25 SELF
    Level 32,Lektion 1
    In dieser Lektion behandeln wir Möglichkeiten, Daten im Stream API zusammenzuführen: die statische Methode Stream.concat für zwei Streams, die Kombination Stream.of + flatMap für eine beliebige Anzahl von Streams sowie den Collector Collectors.joining, um Elemente zu einer einzigen Zeichenkette zu verketten. Wir sprechen über Lazy-Evaluation, Einmaligkeit von Streams, Beibehaltung der Reihenfolge und typische Fehler (Wiederverwendung eines Streams, unendliche Streams, joining für Nicht-Strings) – mit anschaulichen Beispielen.
    Verfügbar
  • Operationen union, intersection, difference

    JAVA 25 SELF
    Level 32,Lektion 2
    In dieser Vorlesung behandeln wir typische Mengenoperationen in Java: Vereinigung ( union), Schnittmenge ( intersection) und Differenz ( difference) auf Basis des Interfaces Set und der Stream API. Es werden praktische Beispiele mit Stream.concat, Stream.of + flatMap gezeigt, Alternativen über retainAll/ removeAll sowie wichtige Besonderheiten zu equals/ hashCode, Effizienz und typischen Fehlern.
    Verfügbar
  • Zipping (zip), Generierung von Streams (iterate, generate)

    JAVA 25 SELF
    Level 32,Lektion 3
    In dieser Vorlesung klären wir, was zip ist und warum es im standardmäßigen Stream API (bis Java 22) fehlt, lernen, Collections über Indizes mit IntStream.range zu „zusammenführen“, sowie Streams „on the fly“ mit Stream.iterate und Stream.generate zu erzeugen. Beispiele, Visualisierungen und typische Fehler helfen dabei, Generierung und Zipping sicher in Aufgaben einzusetzen.
    Verfügbar
  • Analyse typischer Fehler beim Arbeiten mit Streams

    JAVA 25 SELF
    Level 32,Lektion 4
    Ausführlicher Leitfaden zu häufigen Fehlern bei der Arbeit mit dem Stream-API in Java: Einweg-Natur des Streams und wiederholte terminale Operationen ( collect(), forEach(), count()), Änderung einer Sammlung während der Iteration, vergessenes limit() bei unendlichen Streams ( iterate, generate), Umgang mit null und Arbeit mit Optional über flatMap(Optional::stream), Beibehaltung der Reihenfolge mit forEachOrdered(), effiziente Mengenoperationen mit Set, korrektes Schließen von Ressourcen ( Files.lines + try-with-resources), Vorsicht mit parallelStream() und das Prinzip „Solange kein terminaler Operator vorhanden ist – wird nichts ausgeführt“. Alle Probleme sind mit verständlichen Beispielen und Korrekturen versehen.
    Verfügbar
  • Primitive Streams und die Kosten des Boxings (boxing)

    JAVA 25 SELF
    Level 33,Lektion 0
    In dieser Vorlesung erklären wir, warum gewöhnliche Streams von Zahlensammlungen ( Stream<Integer>, Stream<Double>) wegen Boxing/Unboxing ineffizient sein können und wie primitive Streams — IntStream, LongStream, DoubleStream — das vermeiden. Wir betrachten Umwandlungen mapToInt/ boxed(), Aggregationsoperationen ( sum(), average(), summaryStatistics()), sichere Ergebnisse mit OptionalInt/ OptionalDouble sowie, wo Optimierung tatsächlich etwas bringt und wie man den Effekt mit JMH misst.
    Verfügbar
  • Träge Auswertung (lazy evaluation) in der Stream-API

    JAVA 25 SELF
    Level 33,Lektion 1
    In der Vorlesung besprechen wir, wie die träge Auswertung in der Stream-API funktioniert: worin sich Zwischen- und Terminaloperationen unterscheiden, warum Berechnungen erst nach dem Aufruf einer Terminaloperation starten, und welche Vorteile die elementweise Verarbeitung und „Kurzschlussauswertungen“ bieten. Wir zeigen Ketten mit filter, map, peek, findFirst, forEach, visualisieren den Durchlauf der Elemente und gehen typische Fehler sowie Empfehlungen zur effizienten Reihenfolge der Operationen durch.
    Verfügbar
  • Unveränderliche Kollektionen: Collections.unmodifiable

    JAVA 25 SELF
    Level 33,Lektion 2
    In der Vorlesung besprechen wir, wie man Daten mit unveränderlichen Wrappern Collections.unmodifiableList, unmodifiableSet, unmodifiableMap schützt, worin sich „oberflächliche“ Unveränderlichkeit von „tiefer“ unterscheidet, wann und warum man Wrapper aus Methoden zurückgeben sollte, sowie moderne Alternativen List.of/ Set.of/ Map.of. Wir sprechen über typische Fehler (z. B. die Erwartung tiefer Unveränderlichkeit oder der Umgang mit null) und darüber, warum Änderungsversuche in einer UnsupportedOperationException enden.
    Verfügbar
  • Spliterator und parallele Streams

    JAVA 25 SELF
    Level 33,Lektion 3
    In dieser Vorlesung klären wir, was ein Spliterator ist, wie er nicht nur das Iterieren über Elemente ermöglicht, sondern auch die Datenquelle in Teile mittels trySplit() aufteilt, wie darauf aufbauend parallele Streams über parallelStream() und den gemeinsamen ForkJoinPool funktionieren. Gezeigt werden die Schlüsselmethoden ( tryAdvance, estimateSize, characteristics), typische Merkmale ( ORDERED, SIZED, CONCURRENT usw.), praktische Beispiele, ein Mermaid-Diagramm und häufige Fehler beim Einsatz paralleler Streams.
    Verfügbar
  • 1
  • ...
  • 14
  • 15
  • 16
  • 17
  • 18
  • ...
  • 30
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe bei Aufgaben
  • Preise
  • Java-Syntax
Community
  • Nutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsgeschichten
  • Aktivität
  • Partnerprogramm
Unternehmen
  • Über uns
  • Kontakte
  • Bewertungen
  • Presse
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym ist ein Online-Kurs zum Erlernen der Java-Programmierung von Grund auf. Dieser Kurs ist eine perfekte Möglichkeit, Java als Anfänger zu meistern. Er enthält über 1200 Aufgaben mit sofortiger Überprüfung und einen wesentlichen Umfang an Java-Grundlagentheorie. Um Ihren Lernerfolg zu unterstützen, haben wir eine Reihe motivierender Funktionen implementiert: Quizze, Programmierprojekte, Inhalte zum effizienten Lernen und Karriereinformationen für Java-Entwickler.
Folgen Sie uns
Interface-Sprache
English
Deutsch
Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym
MastercardVisa
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym