22. Найти сумму квадратов нечётных чисел
Условие задачи:
Дан список целых чисел.
Необходимо с помощью Stream API реализовать метод sumSquare(), который возвращает сумму квадратов всех нечётных чисел.
Код:
public static void main(String[] args) {
List<Integer> numbers = List.of(-1, 10, 2, 5);
System.out.println(sumSquare(numbers));
}
public static int sumSquare(List<Integer> numbers) {
// Найти сумму квадратов нечетных чисел
return 0;
}
Для приведённых данных результат:
26
Спойлеры к решению
Подсказки
💡 Создай поток из списка через
💡 Через
💡 Через
💡 Для получения общей суммы используй
stream().💡 Через
filter() оставь только нечётные числа.💡 Через
mapToInt() возведи каждое число в квадрат.💡 Для получения общей суммы используй
sum().Решение
public static int sumSquare(List<Integer> numbers) {
return numbers.stream()
.filter(number -> number % 2 != 0)
.mapToInt(number -> number * number)
.sum();
}
Сначала:
.filter(number -> number % 2 != 0)
оставляет нечётные числа:
-1
5
Затем они возводятся в квадрат:
1
25
Итоговая сумма:
26
Временная сложность — O(n), дополнительная память — O(1).