Stream API — удвоенные нечётные числа

6. Получить удвоенные нечётные числа

Условие задачи:
Дан массив натуральных чисел от 0 до 100.

Необходимо с помощью Stream API:

  • оставить только нечётные числа;

  • умножить каждое из них на 2;

  • собрать результат в коллекцию.

Пример:

Вход:  [0, 1, 2, 3, 4, 5]
Выход: [2, 6, 10]

Спойлеры к решению

Подсказки
💡 Для создания потока из массива int[] используй Arrays.stream().
💡 Нечётные числа можно определить через number % 2 != 0.
💡 Для удвоения каждого числа используй map().
💡 boxed() преобразует IntStream в поток Integer, который можно собрать в List<Integer>.

Решение
int[] numbers = {0, 1, 2, 3, 4, 5};

List<Integer> result = Arrays.stream(numbers)
        .filter(number -> number % 2 != 0)
        .map(number -> number * 2)
        .boxed()
        .collect(Collectors.toList());

Сначала:

Arrays.stream(numbers)

создаёт IntStream из исходного массива.

Затем:

.filter(number -> number % 2 != 0)

оставляет только нечётные числа.

После этого:

.map(number -> number * 2)

удваивает каждое из них.

boxed() преобразует значения типа int в Integer, после чего результат собирается в список.

Для массива:

[0, 1, 2, 3, 4, 5]

получим:

[2, 6, 10]

Временная сложность — O(n), дополнительная память — O(k), где k — количество нечётных элементов.