Ich nahm eine Fallstudie für das Lernen Lambda-Ausdruck von Java 8, die generische N-Array Tree Implementation.Ich habe eine rekursive Funktion, um die Gesamtzahl der Knoten in der Baum. Ich bin an diesem Punkt betroffen.Rekursive Funktionsaufruf Umwandlung in Lambda-Ausdruck in Tree Implementierung Java
public class GenericTree<T> {
private GenericTreeNode<T> root;
public GenericTree() {
super();
}
public GenericTreeNode<T> getRoot() {
return this.root;
}
public void setRoot(GenericTreeNode<T> root) {
this.root = root;
}
public int getNumberOfNodes() {
int numberOfNodes = 0;
if(root != null) {
numberOfNodes = getNumberOfnodeRecursiveFunc(root) + 1; //1 for the root!
}
return numberOfNodes;
}
private int getNumberOfnodeRecursiveFunc(GenericTreeNode<T> node) {
Integer numberOfNodes = node.getNumberOfChildren();
for(GenericTreeNode<T> child : node.getChildren()) {
numberOfNodes += getNumberOfnodeRecursiveFunc(child);
}
//node.getChildren().stream().map(child ->this.getNumberOfnodeRecursiveFunc(child));
//return node.getNumberOfChildren() + node.getChildren().stream().collect(Collectors.summingInt(GenericTree::getNumberOfnodeRecursiveFunc));
}}
Wie Lambda-Ausdruck verwenden rekursiv die Anzahl der Knoten zu erhalten, anstatt den herkömmlichen Ansatz in dem Code-Schnipsel erwähnt zu verwenden?
Hinweis: ich durch mehrere andere Fragen ging, sie bieten einfache faktorielle expression.So bitte einen tieferen Einblick in dieses
Sie getroffen werden? Womit? Sie scheinen zu denken, dass da eine Frage drinnen ist, aber ich sehe keine. –
Entschuldigung ... wenn meine Formulierung nicht prompt ist ... Die Frage ist, wie man Lambda-Ausdruck rekursiv verwendet, um die Anzahl der Knoten zu erhalten, anstatt den im Code-Snippet erwähnten konventionellen Ansatz zu verwenden. – karthik