后台的通过sql得到一个List<Menu> 如何在后台把他变成树形结构的List<Menu>传到前台,最后上级的parentId为0
时间: 2023-05-17 07:03:10 浏览: 71
JAVA后台转换成树结构数据返回给前端的实现方法
5星 · 资源好评率100%
您可以使用递归算法将List<Menu>转换为树形结构的List<Menu>,具体实现可以参考以下代码:
```
public List<Menu> buildTree(List<Menu> menuList) {
List<Menu> treeList = new ArrayList<>();
for (Menu menu : menuList) {
if (menu.getParentId() == 0) {
treeList.add(findChildren(menu, menuList));
}
}
return treeList;
}
private Menu findChildren(Menu menu, List<Menu> menuList) {
for (Menu child : menuList) {
if (child.getParentId() == menu.getId()) {
if (menu.getChildren() == null) {
menu.setChildren(new ArrayList<>());
}
menu.getChildren().add(findChildren(child, menuList));
}
}
return menu;
}
```
这段代码会先找到所有parentId为0的Menu,然后递归地将它们的子菜单添加到children属性中,最终返回根节点的List<Menu>。
阅读全文