我可以像这样使用 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();
}
我想尝试使用 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();
}