Java 8 - For Each和removeIf

sat*_*n a 7 java lambda

我试图ForEach通过组合该removeIf方法使用Java 8中的操作来执行操作.但是我得到了错误.

我无法在以下程序中组合forEachremoveIf:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Ros*_*rew 26

没有必要forEach,Lambda表达式将适用于集合的所有元素

ints.removeIf(i -> i%2==0)
Run Code Online (Sandbox Code Playgroud)

removeIf:" 删除此集合中满足给定谓词的所有元素 "

只是...

对于iset ()中的每个element(),ints如果(removeIf)谓词(i%2==0)为true ,则将其删除.这将作用于原始集合,如果删除了任何元素,则返回true.