在开发中常用到层级(树)结构生成,这里自己也整理了一下,结合我的下载资源文件:国家地理地区代码(自己整理成的可直接导入数据库的文件,仅包含省和地市)。
注:数据库中有自己的函数可以直接查询出树结构的结果,这里仅有代码将list集合数据转化为树结构数据
获取地市集合结构数据:
List list = ***Mapper.getAreaList(areaCodeView);
treeMenuList(list,“1”); //1在这里代表全国
层级结构:普通的递归方法
public List treeMenuList(List list, String parentId) {
List childMenu = new ArrayList<>();
for (AreaCodeView areaCodeView : list) {
String menuId = areaCodeView.getAreaCode();
String pid = areaCodeView.getpCode();
if (parentId.equals(pid)) {
List c_node = treeMenuList(list, menuId);
areaCodeView.setChild(c_node);
childMenu.add(areaCodeView);
}
}
return childMenu;
}
地市实体:地区信息
public class AreaCodeView {
private String id;
private String areaCode;//地区编码
private String areaName;//地区名称
private String pCode;//上级地区编码
private List child;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getAreaName() {
return areaName;
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public String getpCode() {
return pCode;
}
public void setpCode(String pCode) {
this.pCode = pCode;
}
public List<AreaCodeView> getChild() {
return child;
}
public void setChild(List<AreaCodeView> child) {
this.child = child;
}
}