关于递归查询子节点,该如何解决
关于递归查询子节点
又遇到这种问题了,求教。
我有一个class是这样
public class GeographicalArea {
private String name;
private ArrayList<GeographicalArea> subAreas; //这是子结点
private ArrayList<GeographicalArea> containedBy; //这是父节点
。。。 。。。
public GeographicalArea[] getAreayWithSubarea(){
//我要在这里实现返回所有的子节点
}
}
求助。。多谢
------解决方案--------------------
又遇到这种问题了,求教。
我有一个class是这样
public class GeographicalArea {
private String name;
private ArrayList<GeographicalArea> subAreas; //这是子结点
private ArrayList<GeographicalArea> containedBy; //这是父节点
。。。 。。。
public GeographicalArea[] getAreayWithSubarea(){
//我要在这里实现返回所有的子节点
}
}
求助。。多谢
------解决方案--------------------
public GeographicalArea[] getAreaWithSubarea() {
ArrayList<GeographicalArea> list = this.getSubarea();
GeographicalArea[] areas = new GeographicalArea[list.size()];
int i = 0;
for (GeographicalArea area : list) {
areas[i++] = area;
}
return areas;
}
private ArrayList<GeographicalArea> getSubarea() {
ArrayList<GeographicalArea> areas = new ArrayList<>();
for (GeographicalArea area : this.subAreas) {
areas.add(area);
areas.addAll(area.getSubarea());
}
return areas;
}