Всем привет. Подскажите пожалуйста, как правильно исправить код, чтобы работать с данными, в данном случае с 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);
}
}