- 定义树对象
public class RpType
{
/** id */
private Long id;
/** 名称id */
private String name;
/** 备注 */
private String remarks;
/** 父节点id */
private String parentId;
/** 所有的子节点对象 */
private List<RpType> childNode;
}
- 递归代码
1、定义接口
/**
* 获取类型树列表
*/
("/getTypeTree")
public List<RpType> getTypeTree() {
// 查询所有列表
List<RpType> rpTypes = rpTypeService.selectRpTypeList(new RpType());
List<RpType> resultList = getTree(rpTypes,"0");
return resultList;
}
2、递归返回树结构
private List<RpType> getTree(List<RpType> list, String pid) {
List<RpType> tree = new ArrayList<>();
for (RpType rpType : list) {
if (rpType.getParentId().equals(pid)) { // 这里因为是定义的不是用一个数据类型,所以转换了一下
rpType.setChildNode(getTree(list, String.valueOf(rpType.getId())));
tree.add(rpType);
}
}
return tree;
}
3、结果