Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Übungen mit der Stream-API | Erweiterte Java-Funktionen und -Techniken
Java Datenstrukturen

bookÜbungen mit der Stream-API

Es ist Zeit, mit der Stream-API zu üben. Es gibt einige einfache Aufgaben, bei denen verschiedene Methoden der Stream-API verwendet werden sollen. Dieses Mal werden keine konkreten Aufgabenstellungen vorgegeben. Stattdessen erhältst du eine Liste zum Bearbeiten sowie das erwartete Ergebnis. Mit anderen Worten: Ziel ist es, Operationen auf der Liste durchzuführen, um das gewünschte Ergebnis zu erzielen.

Diese Art von Aufgabe hilft dabei, die Fähigkeit zur Zielerreichung ohne klare Spezifikation zu entwickeln. Du siehst nur die Eingabedaten und das erwartete Ergebnis.

Du musst die Stream-API verwenden, um diese Aufgaben zu lösen!

Aufgabe 1:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Verwendung der Stream-API, um jede Zahl in der Liste zu quadrieren und das Ergebnis in einer neuen Liste zu sammeln. Erwartete Ausgabe:

[1, 4, 9, 16, 25]

Hier die Methoden map() und toList() verwenden.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 2:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Verwendung der Stream-API, um die Länge des längsten Namens in der Liste zu ermitteln. Erwartete Ausgabe:

7

Verwendung der Zwischenmethoden map() und max() sowie der Endmethode get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 3

Eingabe:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Verwendung der Stream-API zur Ermittlung der Gesamtanzahl unterschiedlicher Wörter (Groß- und Kleinschreibung ignorierend) in allen Sätzen. Erwartete Ausgabe:

37

Verwendung der Zwischenmethoden flatMap() und distinct() sowie der Endmethode count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Aufgabe 4:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Verwendung der Stream-API zur Ermittlung der Verkettung der ersten beiden Wörter mit gerader Länge.

Erwartete Ausgabe:

bananacherry

Verwendung der Zwischenmethoden filter() und limit() sowie der Endmethode collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 5:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Verwendung der Stream-API, um die Summe der Quadrate der geraden Zahlen in der Liste zu berechnen.

Erwartete Ausgabe:

220

Verwendung der Zwischenmethoden mapToInt() und filter() sowie der Endmethode sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

Gute Arbeit!

Wenn alle Aufgaben abgeschlossen wurden, herzlichen Glückwunsch!

Einige Methoden in den Aufgaben wurden möglicherweise zuvor nicht behandelt. Um diese zu erkunden, IntelliJ IDEA öffnen und deren Funktionalität überprüfen.

Programmieren bedeutet kontinuierliches Lernen. Neue Lösungen recherchieren, online suchen und bei Bedarf die Dokumentation konsultieren.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

bookÜbungen mit der Stream-API

Swipe um das Menü anzuzeigen

Es ist Zeit, mit der Stream-API zu üben. Es gibt einige einfache Aufgaben, bei denen verschiedene Methoden der Stream-API verwendet werden sollen. Dieses Mal werden keine konkreten Aufgabenstellungen vorgegeben. Stattdessen erhältst du eine Liste zum Bearbeiten sowie das erwartete Ergebnis. Mit anderen Worten: Ziel ist es, Operationen auf der Liste durchzuführen, um das gewünschte Ergebnis zu erzielen.

Diese Art von Aufgabe hilft dabei, die Fähigkeit zur Zielerreichung ohne klare Spezifikation zu entwickeln. Du siehst nur die Eingabedaten und das erwartete Ergebnis.

Du musst die Stream-API verwenden, um diese Aufgaben zu lösen!

Aufgabe 1:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); // Write your code here } }

Verwendung der Stream-API, um jede Zahl in der Liste zu quadrieren und das Ergebnis in einer neuen Liste zu sammeln. Erwartete Ausgabe:

[1, 4, 9, 16, 25]

Hier die Methoden map() und toList() verwenden.

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
        List<Integer> result = numbers.stream().map(e -> e * e).toList();
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 2:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); // Write your code here } }

Verwendung der Stream-API, um die Länge des längsten Namens in der Liste zu ermitteln. Erwartete Ausgabe:

7

Verwendung der Zwischenmethoden map() und max() sowie der Endmethode get().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
        Integer result = names
                .stream()
                .map(e -> e.length())
                .max((integer, newInteger) -> Integer.compare(integer, newInteger))
                .get();
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 3

Eingabe:

Main.java

Main.java

copy
123456789101112131415
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); // Write your code here } }

Verwendung der Stream-API zur Ermittlung der Gesamtanzahl unterschiedlicher Wörter (Groß- und Kleinschreibung ignorierend) in allen Sätzen. Erwartete Ausgabe:

37

Verwendung der Zwischenmethoden flatMap() und distinct() sowie der Endmethode count().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<String> sentences = Arrays.asList(
                "Java Stream API provides a fluent interface for processing sequences of elements.",
                "It supports functional-style operations on streams of elements, such as map-reduce transformations.",
                "In this exercise, you need to count the total number of words in all sentences."
        );
        long count = sentences.stream()
                .flatMap(e -> Arrays.stream(e.split(" ")))
                .distinct()
                .count();
        System.out.println(count);
        // Write your code here
    }
}

Aufgabe 4:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); // Write your code here } }

Verwendung der Stream-API zur Ermittlung der Verkettung der ersten beiden Wörter mit gerader Länge.

Erwartete Ausgabe:

bananacherry

Verwendung der Zwischenmethoden filter() und limit() sowie der Endmethode collect().

package com.example;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
        String result = words.stream()
                .filter(e -> e.length() % 2 == 0)
                .limit(2)
                .collect(Collectors.joining());
        System.out.println(result);
        // Write your code here
    }
}

Aufgabe 5:

Eingabe:

Main.java

Main.java

copy
1234567891011
package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // Write your code here } }

Verwendung der Stream-API, um die Summe der Quadrate der geraden Zahlen in der Liste zu berechnen.

Erwartete Ausgabe:

220

Verwendung der Zwischenmethoden mapToInt() und filter() sowie der Endmethode sum().

package com.example;

import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        int sum = numbers.stream()
                .mapToInt(e -> e * e)
                .filter(e -> e % 2 == 0)
                .sum();
        System.out.println(sum);
        // Write your code here
    }
}

Gute Arbeit!

Wenn alle Aufgaben abgeschlossen wurden, herzlichen Glückwunsch!

Einige Methoden in den Aufgaben wurden möglicherweise zuvor nicht behandelt. Um diese zu erkunden, IntelliJ IDEA öffnen und deren Funktionalität überprüfen.

Programmieren bedeutet kontinuierliches Lernen. Neue Lösungen recherchieren, online suchen und bei Bedarf die Dokumentation konsultieren.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5
some-alt