一般的なN配列ツリー実装であるJava 8のラムダ式を学習するためのケーススタディを行いました。再帰関数を使用して、私はこの時点で打たれました。ツリー実装のラムダ式への再帰関数呼び出し変換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));
}}
コードスニペットで説明した従来のアプローチを使用する代わりに、ラムダ式を再帰的に使用してノード数を取得する方法はありますか。
注:私は、彼らが簡単な階乗expression.Soを提供あなたの質問を想定すると、この
あなたは打たれ?何によって?あなたはそこに質問があると思うように見えますが、私はそれを見ません。 –
申し訳ありません...私の表現がプロンプトではない場合...問題は、コードスニペットで説明した従来のアプローチを使用する代わりに、ラムダ式を再帰的に使用してノードの数を取得する方法です。 – karthik