Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Øvelse med Stream API | Avancerede Java-Funktioner og -Teknikker
Java Datastrukturer

bookØvelse med Stream API

Det er tid til at øve dig med Stream API. Du får nogle enkle opgaver, der involverer brugen af forskellige Stream API-metoder. Denne gang gives der ikke specifikke opgaver. I stedet får du en liste at arbejde med og hvad det forventede resultat skal være. Med andre ord er dit mål at udføre operationer på listen for at opnå det forventede resultat.

Denne type opgave kan hjælpe dig med at udvikle evnen til at opnå resultater uden en klar specifikation. Du vil kun se inputdata og det forventede resultat.

Du skal bruge Stream API for at løse disse opgaver!

Opgave 1:

Input:

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

Brug Stream API til at kvadrere hvert tal i listen og indsamle resultatet i en ny liste. Forventet output:

[1, 4, 9, 16, 25]

Brug metoderne map() og toList() her.

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

Opgave 2:

Input:

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

Brug Stream API til at finde længden af det længste navn i listen. Expected Output:

7

Brug de mellemliggende metoder map() og max(), samt den terminale metode 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
    }
}

Opgave 3

Input:

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

Brug Stream API til at tælle det samlede antal unikke ord (case-insensitivt) i alle sætningerne. Forventet output:

37

Brug de mellemliggende metoder flatMap() og distinct(), samt den terminale metode 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
    }
}

Opgave 4:

Input:

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

Brug Stream API til at finde sammenkædningen af de første to ord med lige længde.

Forventet output:

bananacherry

Brug de mellemliggende metoder filter() og limit(), samt den terminale metode 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
    }
}

Opgave 5:

Input:

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

Brug Stream API til at finde summen af kvadraterne af de lige tal i listen.

Forventet output:

220

Brug de mellemliggende metoder mapToInt() og filter(), samt den terminale metode 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
    }
}

Godt klaret!

Hvis du har gennemført alle opgaverne, godt gået!

Nogle metoder i opgaverne er muligvis ikke blevet gennemgået tidligere. For at udforske dem, åbn IntelliJ IDEA og undersøg deres funktionalitet.

Programmering handler om kontinuerlig læring, så undersøg nye løsninger, søg online og benyt dokumentationen efter behov.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

bookØvelse med Stream API

Stryg for at vise menuen

Det er tid til at øve dig med Stream API. Du får nogle enkle opgaver, der involverer brugen af forskellige Stream API-metoder. Denne gang gives der ikke specifikke opgaver. I stedet får du en liste at arbejde med og hvad det forventede resultat skal være. Med andre ord er dit mål at udføre operationer på listen for at opnå det forventede resultat.

Denne type opgave kan hjælpe dig med at udvikle evnen til at opnå resultater uden en klar specifikation. Du vil kun se inputdata og det forventede resultat.

Du skal bruge Stream API for at løse disse opgaver!

Opgave 1:

Input:

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

Brug Stream API til at kvadrere hvert tal i listen og indsamle resultatet i en ny liste. Forventet output:

[1, 4, 9, 16, 25]

Brug metoderne map() og toList() her.

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

Opgave 2:

Input:

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

Brug Stream API til at finde længden af det længste navn i listen. Expected Output:

7

Brug de mellemliggende metoder map() og max(), samt den terminale metode 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
    }
}

Opgave 3

Input:

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

Brug Stream API til at tælle det samlede antal unikke ord (case-insensitivt) i alle sætningerne. Forventet output:

37

Brug de mellemliggende metoder flatMap() og distinct(), samt den terminale metode 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
    }
}

Opgave 4:

Input:

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

Brug Stream API til at finde sammenkædningen af de første to ord med lige længde.

Forventet output:

bananacherry

Brug de mellemliggende metoder filter() og limit(), samt den terminale metode 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
    }
}

Opgave 5:

Input:

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

Brug Stream API til at finde summen af kvadraterne af de lige tal i listen.

Forventet output:

220

Brug de mellemliggende metoder mapToInt() og filter(), samt den terminale metode 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
    }
}

Godt klaret!

Hvis du har gennemført alle opgaverne, godt gået!

Nogle metoder i opgaverne er muligvis ikke blevet gennemgået tidligere. For at udforske dem, åbn IntelliJ IDEA og undersøg deres funktionalitet.

Programmering handler om kontinuerlig læring, så undersøg nye løsninger, søg online og benyt dokumentationen efter behov.

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 5
some-alt