我有一份孩子名单和一份父母名单。我还有一张 childeId-parentId 的地图。父母可以有 n 个孩子,但孩子有一个直系父母。我想从 Java 中的父级获取每个子级的路径。我怎样才能递归地做到这一点?
我的组为:[Root, abc, asd, xyz, 123, xyz2]
父子图:{Root=abc, Root=asd, Root=xyz, Root=123, xyz=xyz2}
我想获得每个孩子的路径:{Root/abc, Root/asd, Root/xyz, Root/123, Root/xyz/xyz2}
我有一张地图:
final<String, Groups> groupMap = Service.getListOfGroups(service);
这给了我所有必需的值。我正在遍历地图以获取每个条目。
public Map<String, Groups> takeGroups(Service servie ) {
final<String, Groups> groupMap = new HashMap<>();
for(Groups gp: service.getGroups()){
groupMap.put(gp.getGroupId, gp)
}
for(Groups gp: groupMap.values()){
gp.setChildren(new ArrayList<>());
String group = gp.getGroupValue();
String parentId = gp.getParent();
Groups parentGroup = groupMap.get(parentId);
List<GroupSummary> childs = parent.getChildren();
if(childs == null){
childs = new ArrayList<>();
}
childs.add(gd);
}
return groupMap;
}
我想我可以通过将所有这些值添加到 n 叉树然后遍历 n 叉树来解决这个问题。我以前从未使用过树,不知道如何从中创建 n-ary-tree 并获得所有组所需的路径。非常感谢任何帮助。