Sobes.tech
Senior

Stream API kullanarak büyük bir koleksiyondan çift sayıları nasıl filtreler, nesneye dönüştürür ve herhangi bir öğeyi döndürürsünüz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Для фильтрации чётных чисел, преобразования их в объекты и получения одного любого элемента из большой коллекции с помощью 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() возвращает любой элемент из потока, что эффективно при работе с большими коллекциями, особенно в параллельных потоках.