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, если какие-либо элементы, где удаленный.