Sobes.tech
Back to questions
Senior
4

Как с помощью Stream API отфильтровать чётные числа из большой коллекции, конвертировать их в объект и вернуть один любой элемент?

Companies where asked
платформа офд

Answer from AI

sobes.tech AI

Для фильтрации чётных чисел, преобразования их в объекты и получения одного любого элемента из большой коллекции с помощью Stream API в Java можно использовать следующий подход:

import java.util.*;
import java.util.stream.*;

public class Example {
    static class NumberObject {
        int value;
        NumberObject(int value) { this.value = value; }
        @Override
        public String toString() { return "NumberObject{" + "value=" + value + '}'; }
    }

    public static void main(String[] args) {
        List<Integer> numbers = IntStream.rangeClosed(1, 1_000_000).boxed().collect(Collectors.toList());

        Optional<NumberObject> anyEven = numbers.stream()
            .filter(n -> n % 2 == 0) // фильтрация чётных
            .map(NumberObject::new)  // конвертация в объект
            .findAny();              // получение любого элемента

        anyEven.ifPresent(System.out::println);
    }
}

Метод findAny() возвращает любой элемент из потока, что эффективно при работе с большими коллекциями, особенно в параллельных потоках.