Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Практика зі Stream API | Розширені Можливості та Техніки Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Структури Даних Java

bookПрактика зі Stream API

Час попрактикуватися з Stream API. На вас чекає кілька простих завдань із використанням різних методів Stream API. Цього разу конкретних завдань не буде. Натомість вам буде надано список для роботи та очікуваний результат. Іншими словами, ваша мета — виконати операції над списком, щоб отримати очікуваний результат.

Такий тип завдань допоможе вам розвинути навичку досягнення результату без чіткої специфікації. Ви побачите лише вхідні дані та очікуваний результат.

Для виконання цих завдань потрібно використовувати Stream API!

Завдання 1:

Вхідні дані:

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

Використайте Stream API для піднесення до квадрату кожного числа у списку та збережіть результат у новий список. Очікуваний результат:

[1, 4, 9, 16, 25]

Використовуйте методи map() та 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
    }
}

Завдання 2:

Вхідні дані:

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

Використати Stream API для знаходження довжини найдовшого імені у списку. Очікуваний результат:

7

Використання проміжних методів map() і max(), а також термінального методу 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
    }
}

Завдання 3

Вхідні дані:

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

Використайте Stream API для підрахунку загальної кількості унікальних слів (без урахування регістру) у всіх реченнях. Очікуваний результат:

37

Використовуйте проміжні методи flatMap() і distinct(), а також термінальний метод 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
    }
}

Завдання 4:

Вхідні дані:

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

Використайте Stream API для знаходження конкатенації перших двох слів з парною кількістю символів.

Очікуваний результат:

bananacherry

Використайте проміжні методи filter() та limit(), а також термінальний метод 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
    }
}

Завдання 5:

Вхідні дані:

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

Використати Stream API для знаходження суми квадратів парних чисел у списку.

Очікуваний результат:

220

Використати проміжні методи mapToInt() і filter(), а також термінальний метод 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
    }
}

Гарна робота!

Якщо всі завдання виконано, відмінний результат!

Деякі методи у завданнях могли не розглядатися раніше. Для їх вивчення відкрийте IntelliJ IDEA та перевірте їхню функціональність.

Програмування — це постійне навчання, тому досліджуйте нові рішення, шукайте інформацію онлайн і звертайтеся до документації за потреби.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

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?

bookПрактика зі Stream API

Свайпніть щоб показати меню

Час попрактикуватися з Stream API. На вас чекає кілька простих завдань із використанням різних методів Stream API. Цього разу конкретних завдань не буде. Натомість вам буде надано список для роботи та очікуваний результат. Іншими словами, ваша мета — виконати операції над списком, щоб отримати очікуваний результат.

Такий тип завдань допоможе вам розвинути навичку досягнення результату без чіткої специфікації. Ви побачите лише вхідні дані та очікуваний результат.

Для виконання цих завдань потрібно використовувати Stream API!

Завдання 1:

Вхідні дані:

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

Використайте Stream API для піднесення до квадрату кожного числа у списку та збережіть результат у новий список. Очікуваний результат:

[1, 4, 9, 16, 25]

Використовуйте методи map() та 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
    }
}

Завдання 2:

Вхідні дані:

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

Використати Stream API для знаходження довжини найдовшого імені у списку. Очікуваний результат:

7

Використання проміжних методів map() і max(), а також термінального методу 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
    }
}

Завдання 3

Вхідні дані:

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

Використайте Stream API для підрахунку загальної кількості унікальних слів (без урахування регістру) у всіх реченнях. Очікуваний результат:

37

Використовуйте проміжні методи flatMap() і distinct(), а також термінальний метод 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
    }
}

Завдання 4:

Вхідні дані:

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

Використайте Stream API для знаходження конкатенації перших двох слів з парною кількістю символів.

Очікуваний результат:

bananacherry

Використайте проміжні методи filter() та limit(), а також термінальний метод 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
    }
}

Завдання 5:

Вхідні дані:

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

Використати Stream API для знаходження суми квадратів парних чисел у списку.

Очікуваний результат:

220

Використати проміжні методи mapToInt() і filter(), а також термінальний метод 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
    }
}

Гарна робота!

Якщо всі завдання виконано, відмінний результат!

Деякі методи у завданнях могли не розглядатися раніше. Для їх вивчення відкрийте IntelliJ IDEA та перевірте їхню функціональність.

Програмування — це постійне навчання, тому досліджуйте нові рішення, шукайте інформацію онлайн і звертайтеся до документації за потреби.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5
some-alt