Практика зі Stream API
Час попрактикуватися з Stream API. На вас чекає кілька простих завдань із використанням різних методів Stream API. Цього разу конкретних завдань не буде. Натомість вам буде надано список для роботи та очікуваний результат. Іншими словами, ваша мета — виконати операції над списком, щоб отримати очікуваний результат.
Такий тип завдань допоможе вам розвинути навичку досягнення результату без чіткої специфікації. Ви побачите лише вхідні дані та очікуваний результат.
Для виконання цих завдань потрібно використовувати Stream API!
Завдання 1:
Вхідні дані:
Main.java
1234567891011package 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
1234567891011package 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
123456789101112131415package 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
1234567891011package 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
1234567891011package 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 та перевірте їхню функціональність.
Програмування — це постійне навчання, тому досліджуйте нові рішення, шукайте інформацію онлайн і звертайтеся до документації за потреби.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
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?
Чудово!
Completion показник покращився до 4
Практика зі Stream API
Свайпніть щоб показати меню
Час попрактикуватися з Stream API. На вас чекає кілька простих завдань із використанням різних методів Stream API. Цього разу конкретних завдань не буде. Натомість вам буде надано список для роботи та очікуваний результат. Іншими словами, ваша мета — виконати операції над списком, щоб отримати очікуваний результат.
Такий тип завдань допоможе вам розвинути навичку досягнення результату без чіткої специфікації. Ви побачите лише вхідні дані та очікуваний результат.
Для виконання цих завдань потрібно використовувати Stream API!
Завдання 1:
Вхідні дані:
Main.java
1234567891011package 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
1234567891011package 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
123456789101112131415package 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
1234567891011package 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
1234567891011package 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 та перевірте їхню функціональність.
Програмування — це постійне навчання, тому досліджуйте нові рішення, шукайте інформацію онлайн і звертайтеся до документації за потреби.
Дякуємо за ваш відгук!