Sobes.tech
Senior
31

Stream API көмегімен үлкен коллекциядан жұп сандарды қалай сүзуге, оларды объектілерге айналдыруға және кез келген бір элементті қайтаруға болады?

Сұралған компаниялар
платформа офд

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