2016-01-25 74 views
4

我試圖通過組合removeIf方法來使用Java 8中的ForEach執行操作。但我得到錯誤。Java 8 - For Each和removeIf

我不能夠在下面的程序到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); 
    } 
} 
+0

你想做什麼?你想刪除所有的值甚至打印你刪除的內容嗎? – Tunaki

回答

19

沒有必要爲forEach,lambda表達式將在集合中的所有元素工作

ints.removeIf(i -> i%2==0) 

removeIf: 「刪除此集合中滿足給定謂詞的所有元素

簡單...

對於該集合(i)的每個元素,將其刪除,如果(removeIf)謂詞(i%2==0)是真實的。