最全的省份递归

递归查询树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);

}


}


}


}

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

转载于:https://www.cnblogs.com/zzl0916/p/11141960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值