问题是,随着树的增长,我必须添加一个for循环。所以,基本的想法是我有一棵树,它有分支,这些分支可以有更多的分支,因为它在应用程序中增长。问题是,随着分支的增长,我必须添加更多for循环。树支柱
所以,如果你看到gen1有三个分支gentest1,gentest2,gentest3。后来的gentest1又有两个分支321和mat00000000000630,进一步gentest2有分支123,123也有分支21。因此,分支越长,for循环就越多。
实施我是如何实施的
parent = new Map<String,List<String>>;
for (Map.Entry i : parent.entrySet()) {
key = i.getKey();
valueList = (List<String>) i.getValue();
S.O.P("Key: "+
key +
" & Value: " +
valueList);
for (String child: valueList)
{
parent = Map(child.get(0)) //Please don't worry about how the string value is converted into Map I did with my helper classes.
for(Map.Entry j : parent.entrySet())
{
key = j.getKey();
valueList = (List<String>) j.getValue();
S.O.P("2ndKey: "+
key +
" & 2ndValue: " +
valueList);
}
}
}
你看我可以找回绅士1和绅士2的分支。但是在gentest2中有123,对于123,我必须再次使用for循环。
我知道递归是最好的选择,但我在实现它时遇到了问题。
好的,输出应该是这样的gen1 gentest1 321 mat000000000628 gentest2 123 21 gentest3
3条答案
按热度按时间laik7k3q1#
在java中,有一个标准treenode接口,您应该考虑在其中实现
WTPart
. 其主要方法有为了一棵树
MyNode extends TreeNode
使用时,可以通过在中实现print函数递归地打印内容MyNode
,如下所示:所以我的建议是实施
isLeaf()
,并在执行时实现children()
方法比MechatronicBOMHelper.getPartentChildPart(MechatronicBOMHelper.getPartProp(child).get(0))
. 既然您有一个helper类,就可以考虑使用MechatronicBOMHelper.childrenOf(child)
而不是有一个child.getChildren()
,但第二个更像oo。xmq68pz92#
这是简单的递归,我通过迭代使之复杂化。
7fyelxc53#
也许你需要这样的。。。