/**
* List转成树结构
*/
public static List<Menu> buildTree(List<Menu> lisy) {
//先选出非顶级的节点
List<Menu> list = lisy.stream().filter(node -> node.getParentId() != 0L).collect(Collectors.toList());
//将这些非顶级节点的数据按pid进行分组
Map<Long, List<Menu>> sub = list.stream().collect(Collectors.groupingBy(Menu::getParentId));
//循环设置对应的子节点(根据id = pid)
lisy.forEach(node -> node.setChildren(sub.get(node.getObjectId())));
//过滤掉父节点数据
return lisy.stream().filter(node -> node.getParentId() == 0L).collect(Collectors.toList());
}
List转成树结构
最新推荐文章于 2024-09-15 15:47:09 发布