数据库:
字段名 | 字段类型 | 备注 |
---|---|---|
id | int | 编号 |
pid | int | 父编号 |
ds | varchar | 距离根节点所有节点集合 |
dname | varchar | 名字 |
实体类:
@Data
public class Division
{
/** 分类编号 */
private Integer id;
/** 父编号 */
private Integer pid;
/** 所有类目 */
private String ds;
/** 分类名 */
private String dname;
/** 子节点 */
private List<Division> children;
}
构建树结构:
public static List<Division> createTree(int pid, List<Division> list) {
List<Division> treeMenu = new ArrayList<>();
for (Division menu : list) {
if (pid == menu.getPid()) {
treeMenu.add(menu);
menu.setChildren(createTree(menu.getId(), list));
}
}
return treeMenu;
}