最全的省份递归

递归查询树tree结构有两种做法:

第一种,递归查询数据库结构,

第二种,一次性将数据库表中的所有数据查出来,然后再递归查出来的list集合,

第一种做法适合数据量较少的tree结构,因为要一直查询数据库数据量大时速度回相对较慢,所以数据量大时建议使用第二种方法


public class G {

public static void main(String[] args) {

List provinceList = new ArrayList();
provinceList.add(new Province(0, 1, "陕西"));
provinceList.add(new Province(1, 2, "延安"));
provinceList.add(new Province(2, 3, "洛川"));
provinceList.add(new Province(1, 4, "西安"));
findAllInProvince(provinceList, 0, "");


}


public static class Province {


private int parent = 0;
private int children = 0;
private String info = "";

public int getParent() {
return parent;
}


public int getChildren() {
return children;
}


public String getInfo() {
return info;
}


public Province(int parent, int children, String info) {
this.parent = parent;
this.children = children;
this.info = info;
}
}


public static void findAllInProvince(List provinceList, int parent, String str) {


if (parent != 0) {
str += "----";
}
for (int j = 0; provinceList != null && j < provinceList.size(); j++) {
Province province = (Province) provinceList.get(j);
Integer children = null;
if (province != null && province.getParent() == parent) {
children = province.getChildren();
System.out.println(str + province.getInfo());
findAllInProvince(provinceList, children, str);

}


}


}


}

陕西
----延安
--------洛川
----西安

posted @ 2019-07-06 10:57  zzl0916  阅读(248)  评论(0编辑  收藏  举报