我可以像这样使用 lambda 函数吗?

Can I use a lambda function like this?

我想尝试使用 lambda 函数(我不太了解),以便我可以更多地了解它们。我有一项关于树的作业,让我们制作家谱 class。

children 是该节点的所有子节点的集合。

/** = the number of nodes in this H1N1Tree.
 * Note: If this is a leaf, the size is 1 (just the root) */
public int size() {
    // TODO 2. This method must be recursive.
    if (children.size() == 0) return 1;
    AtomicInteger sizeOfChildren = new AtomicInteger();
    children.forEach(p -> {sizeOfChildren.addAndGet(p.size());});
    return sizeOfChildren.get();
}

另外,作为一个附带问题,AtomicInteger 的这种用法是否类似于仅制作一个 int sizeOfChildren,然后 运行 带有指向 [=14= 的 C++ 指针的 lambda 函数]?

是的,你可以,但它看起来不太好。我想我会用流来解决它。

public int size() {
    if (children.size() == 0) return 1;
    return children.stream().mapToInt(c -> c.size()).sum();
}