removeIf中的lambdas

QWE*_*890 1 java lambda remove-if java-8

HashSet<Integer> liczby = new HashSet<Integer>();
liczby.add(1);
liczby.add(2); 
liczby.add(3);
liczby.add(4);
liczby.removeIf ((Integer any) -> { return liczby.contains(3); });

for(Iterator<Integer> it = liczby.iterator(); it.hasNext();){
    Integer l2 = it.next();
    System.out.println(l2);
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么removeIf删除不仅3,而且1和2条件只应满足3 ...

Ous*_* D. 5

可以这样考虑......只要该集合包含3它将继续删除当前结果.

如果你想删除3只有这样做:

liczby.removeIf(e -> e == 3);
Run Code Online (Sandbox Code Playgroud)

  • 你也可以做一个方法参考:`Integer interested = 3; liczby.removeIf(有兴趣::等于);` (3认同)