Java 8-для каждого и removeIf
Я пытаюсь выполнить операцию с помощью ForEach в Java 8 путем объединения removeIf метод. Но я получаю ошибку.
Я не могу объединить forEach и removeIf в программе:
public class ForEachIterator {
public static void main(String[] args) {
List<Integer> ints = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
ints.add(i);
}
System.out.println(ints);
// Getting the Error in next line
ints.forEach(ints.removeIf(i -> i%2 ==0));
System.out.println(ints);
}
}
1 ответов
нет необходимости в forEach, лямбда-выражение будет работать на всех элементах набора
ints.removeIf(i -> i%2==0)
removeIf: "удаляет все элементы этой коллекции, удовлетворяющие заданному предикату"
просто...
для каждого элемента в наборе (i), удалить его, если (removeIf) предикат (i%2==0) это правда. Это будет действовать на исходный набор и возвращает true, если какие-либо элементы, где удаленный.