import java.util.ArrayList;
import java.util.List;
public class Test {
static String output = "";
static List<City> list = new ArrayList<City>();
public static void main(String[] args) {
list.add(new City(1, "中国", 0, ""));
list.add(new City(2, "四川", 1, "中国"));
list.add(new City(3, "北京", 1, "中国"));
list.add(new City(4, "成都", 2, "四川"));
list.add(new City(5, "朝阳区", 3, "北京"));
City firstNode = (City)list.get(0);
System.out.println(visit(firstNode.ParentID));
}
// 递归算法
private static String visit(Integer ID) {
for (City node : list) {
if (node.ParentID == ID) {
// 这里是关键
output += "<node label='" + node.Name + "'>" + "\n";
visit(node.ID);
output += "</node>" + "\n";
}
}
return output;
}
}
输出结果如下:
<node label='中国'>
<node label='四川'>
<node label='成都'>
</node>
</node>
<node label='北京'>
<node label='朝阳区'>
</node>
</node>
</node>