@dc65k

Как правильно работать с данными List, используя Stream API?

Всем привет. Подскажите пожалуйста, как правильно исправить код, чтобы работать с данными, в данном случае с List. Я написал три, два из которых закомментированы, но я так понимаю, что проблема везде одна.
package stream;

import java.util.ArrayList;
import java.util.List;

public class Test5 {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add(3);
        list.add(8);
        list.add(1);
        list.add(5);
        list.add(9);

        List result = filterArray(list);

        System.out.println(result);
    }

    public static List filterArray(List list) {
        System.out.println(list);

        List result;

//        list.stream()
//            .forEach(element -> {
//                System.out.println(element);
//                result.add(element);
//            });

//        list.stream()
//            .map(element -> {
//                return element * 2;
//            })
//            .forEach(element -> {
//                result.add(element);
//            });

        list.stream()
            .filter(element -> {
                return element % 2 == 0;
            })
            .forEach(element -> {
                result.add(element);
            });

        return result;
    }
}


Добавлю, что вопрос именно, если я изначально работаю с List.
С вариантом, если инициализировать значения в stream, я разобрался.
public class Test6 {
    public static void main(String[] args) {
        Stream<Integer> stream1 = Stream.of(1, 2, 3, 4, 5, 1, 2);

        List result;

        result = stream1
                .filter(el -> {
                    System.out.println("!!!");
                    return el % 2 == 0;
                })
                .map(element -> {
                    return element * 2;
                })
                .collect(Collectors.toList());

        System.out.println(result);
    }
}
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
zagayevskiy
@zagayevskiy Куратор тега Java
Android developer at Yandex
return list.stream()
    .filter(....)
    .collect(Collectors.toList());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ростов-на-Дону
от 100 000 до 180 000 ₽
от 150 000 до 200 000 ₽
от 80 000 ₽