特定のツリーのすべてのパスを取得できるメソッドをしばらく探しています。次のツリーを想像してください。
A
B
C
D
E
F
G
今、私はすべてのパスを別の文字列として取得したい:
- AB
- ACDE
- ACF
- AG
- - - - - - - -アップデート - - - - - - - - -
コメントで既に述べたように、サブツリーではなくすべてのツリーパスを探しています。次の解決策を見つけましたが、それが良い解決策になるかどうかはわかりません。
private ArrayList<ArrayList<String>> abstractProperties;
........
getTreePath(abstractHw, new ArrayList<String>());
.......
private void getTreePath(Node hw, ArrayList<String> path) {
path.add(hw.getName());
if (hw.getNodes().isEmpty()) {
abstractProperties.add(path);
} else {
for (Node subHw : hw.Nodes()) {
getTreePath(subHw, new ArrayList<String>(path));
}
}
}
どう思いますか?