Sobes.tech
Senior

Hoe filter je even getallen uit een grote collectie met behulp van de Stream API, zet je ze om in een object en geef je een willekeurig element terug?

sobes.tech AI

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