Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Oefenen met Stream-API | Geavanceerde Java-Functies en -Technieken
Java Datastructuren

bookOefenen met Stream-API

Het is tijd om te oefenen met de Stream API. Je krijgt een aantal eenvoudige opdrachten waarbij je gebruikmaakt van verschillende Stream API-methoden. Dit keer worden er geen specifieke opdrachten gegeven. In plaats daarvan krijg je een lijst om mee te werken en wat het verwachte resultaat moet zijn. Met andere woorden, het is de bedoeling dat je bewerkingen uitvoert op de lijst om het verwachte resultaat te bereiken.

Dit soort opdrachten helpt je om de vaardigheid te ontwikkelen om resultaten te behalen zonder een duidelijke specificatie. Je ziet alleen de invoergegevens en het verwachte resultaat.

Je moet de Stream API gebruiken om deze opdrachten uit te voeren!

Opdracht 1:

Invoer:

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 } }

Gebruik de Stream API om elk getal in de lijst te kwadrateren en verzamel het resultaat in een nieuwe lijst. Verwachte uitvoer:

[1, 4, 9, 16, 25]

Gebruik hier de methoden map() en toList().

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
    }
}

Taak 2:

Invoer:

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 } }

Gebruik Stream API om de lengte van de langste naam in de lijst te vinden. Verwachte uitvoer:

7

Gebruik de tussenliggende methoden map() en max(), en de terminale methode 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
    }
}

Taak 3

Invoer:

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 } }

Gebruik de Stream API om het totale aantal unieke woorden (hoofdletterongevoelig) in alle zinnen te tellen. Verwachte uitvoer:

37

Gebruik de tussenliggende methoden flatMap() en distinct(), en de terminale methode 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
    }
}

Taak 4:

Invoer:

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 } }

Gebruik de Stream API om de concatenatie te vinden van de eerste twee woorden met een even lengte.

Verwachte uitvoer:

bananacherry

Gebruik de intermediaire methoden filter() en limit(), en de terminale methode 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
    }
}

Taak 5:

Invoer:

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 } }

Gebruik de Stream API om de som van de kwadraten van de even getallen in de lijst te bepalen.

Verwachte uitvoer:

220

Gebruik de intermediaire methoden mapToInt() en filter(), en de terminale methode 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
    }
}

Goed gedaan!

Als je alle taken hebt voltooid, goed gedaan!

Sommige methoden in de taken zijn mogelijk eerder niet behandeld. Om deze te verkennen, open IntelliJ IDEA en controleer hun functionaliteit.

Programmeren draait om voortdurend leren, dus onderzoek nieuwe oplossingen, zoek online en raadpleeg documentatie indien nodig.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 5

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

Can you explain how the Stream API works in these examples?

What are some other common Stream API methods I should know?

Can you give me more practice tasks like these?

bookOefenen met Stream-API

Veeg om het menu te tonen

Het is tijd om te oefenen met de Stream API. Je krijgt een aantal eenvoudige opdrachten waarbij je gebruikmaakt van verschillende Stream API-methoden. Dit keer worden er geen specifieke opdrachten gegeven. In plaats daarvan krijg je een lijst om mee te werken en wat het verwachte resultaat moet zijn. Met andere woorden, het is de bedoeling dat je bewerkingen uitvoert op de lijst om het verwachte resultaat te bereiken.

Dit soort opdrachten helpt je om de vaardigheid te ontwikkelen om resultaten te behalen zonder een duidelijke specificatie. Je ziet alleen de invoergegevens en het verwachte resultaat.

Je moet de Stream API gebruiken om deze opdrachten uit te voeren!

Opdracht 1:

Invoer:

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 } }

Gebruik de Stream API om elk getal in de lijst te kwadrateren en verzamel het resultaat in een nieuwe lijst. Verwachte uitvoer:

[1, 4, 9, 16, 25]

Gebruik hier de methoden map() en toList().

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
    }
}

Taak 2:

Invoer:

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 } }

Gebruik Stream API om de lengte van de langste naam in de lijst te vinden. Verwachte uitvoer:

7

Gebruik de tussenliggende methoden map() en max(), en de terminale methode 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
    }
}

Taak 3

Invoer:

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 } }

Gebruik de Stream API om het totale aantal unieke woorden (hoofdletterongevoelig) in alle zinnen te tellen. Verwachte uitvoer:

37

Gebruik de tussenliggende methoden flatMap() en distinct(), en de terminale methode 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
    }
}

Taak 4:

Invoer:

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 } }

Gebruik de Stream API om de concatenatie te vinden van de eerste twee woorden met een even lengte.

Verwachte uitvoer:

bananacherry

Gebruik de intermediaire methoden filter() en limit(), en de terminale methode 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
    }
}

Taak 5:

Invoer:

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 } }

Gebruik de Stream API om de som van de kwadraten van de even getallen in de lijst te bepalen.

Verwachte uitvoer:

220

Gebruik de intermediaire methoden mapToInt() en filter(), en de terminale methode 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
    }
}

Goed gedaan!

Als je alle taken hebt voltooid, goed gedaan!

Sommige methoden in de taken zijn mogelijk eerder niet behandeld. Om deze te verkennen, open IntelliJ IDEA en controleer hun functionaliteit.

Programmeren draait om voortdurend leren, dus onderzoek nieuwe oplossingen, zoek online en raadpleeg documentatie indien nodig.

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 5
some-alt