Java 谓词在这种情况下是如何工作的?

Java 谓词在这种情况下是如何工作的?,java,predicate,Java,Predicate,我试图理解谓词在这种情况下是如何工作的。它看起来很简单,但我不明白它与其他类和方法组合时会做什么 这对我来说是新鲜事。我试着调试,但什么也没得到 Predicate<String> delete = (strings) ->{ return !strings.startsWith(sNextNode.nameOfString))|| !Note_Tree.PATTERN.matcher(strings).find(); }; List<String> arr

我试图理解谓词在这种情况下是如何工作的。它看起来很简单,但我不明白它与其他类和方法组合时会做什么

这对我来说是新鲜事。我试着调试,但什么也没得到

Predicate<String> delete = (strings) ->{
    return !strings.startsWith(sNextNode.nameOfString))|| !Note_Tree.PATTERN.matcher(strings).find();
};
List<String> arrayChild = nodeRoot.childNameList();
arrayChild.removeIf(delete);

PATTERNS is just Pattern.compile("[0-9]");
谓词删除=(字符串)->{
return!strings.startsWith(sNextNode.nameOfString))| |!Note_Tree.PATTERN.matcher(strings.find();
};
List arrayChild=nodeRoot.childNameList();
arrayChild.removeIf(删除);
模式就是模式。编译(“[0-9]”);
如果其他节点不相同,我不希望删除它们。我想保留它们。这将采用相同的节点名称,但如果不相似,则不采用其他节点名称


或者,如果您可以提供一个示例,说明如何在几乎相同的情况下使用谓词。请。非常感谢

返回部分。我不明白它是怎么工作的。我看过类似的问题,但它们没有显示出与此类似的内容。没有退货零件。是的。这是有道理的。我想我可以用这种感觉在代码中插入一些东西。希望它能起作用。问题。。。两者之间有什么区别。!strings.startsWith(sNextNode.nameOfString))| |!注意树.PATTERN.matcher(strings.find();和strings.startsWith(sNextNode.nameOfString))| | Note_Tree.PATTERN.matcher(strings.find();上面的感叹号有和没有。是的。这很糟糕。不走运。