我想嘗試使用 lambda 函式(我不太了解),以便我可以了解更多關于它們的資訊。我有一個關于樹木的作業,讓我們制作一個家譜類。
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,然后使用指向 的 C 指標運行 lambda 函式sizeOfChildren?
uj5u.com熱心網友回復:
是的,你可以,但它看起來不太好。我想我會用流來解決它。
public int size() {
if (children.size() == 0) return 1;
return children.stream().mapToInt(c -> c.size()).sum();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/326802.html
下一篇:遞回-陣列的總和
