【问题标题】:Java 8 removeif with method reference [closed]带有方法参考的 Java 8 removeif [关闭]
【发布时间】:2020-09-12 14:02:30
【问题描述】:

我正在查看一些 Java 8 代码并观察到类似下面的内容,有人可以帮我理解它的实际含义吗?

hashSetA.removeif(hasSetB::remove);

【问题讨论】:

  • 我认为你应该澄清你关于什么是hashSetAhashSetB 的问题?

标签: java java-8 method-reference


【解决方案1】:

方法引用是将 lambda 的参数传递给方法的简写。也就是说,这个sn-p:

hashSetA.removeIf(hashSetB::remove);

相当于:

hashSetA.removeIf(itemFromA -> hashSetB.remove(itemFromA));

remove 如果项目被实际删除,则返回 true。所以这里实际发生的是removeIf 遍历hashSetA 中的所有项目,并尝试从hashSetB 中删除每个项目。如果该项目实际上位于 hashSetB 中,则将其从其中删除,然后从 hashSetA 中删除。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
  • 2013-11-19
  • 1970-01-01
相关资源
最近更新 更多