带方法引用的Java8Removeif

带方法引用的Java8Removeif,java,java-8,method-reference,Java,Java 8,Method Reference,我正在浏览一些Java8代码,并观察到如下内容,有人能帮助我理解它的实际含义吗 hashSetA.removiefhassetb::remove 方法引用是将lambda参数传递给方法的简写。换句话说,这个片段: hashSetA.removeIf(hashSetB::remove); 相当于: hashSetA.removeIf(itemFromA -> hashSetB.remove(itemFromA)); 如果项目实际已删除,则返回true。所以这里实际发生的是removeIf

我正在浏览一些Java8代码,并观察到如下内容,有人能帮助我理解它的实际含义吗


hashSetA.removiefhassetb::remove

方法引用是将lambda参数传递给方法的简写。换句话说,这个片段:

hashSetA.removeIf(hashSetB::remove);
相当于:

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

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

HashSet自java 8以来已删除。请参阅:从集合中,我认为您应该澄清关于什么是hashSetA或hashSetB的问题?