递归实现无限极菜单

编程 , Java12 字
public List<Types> buildTree(List<Types> list) {
    //父级(总的)
    List<Types> typesList = new ArrayList<>();
    list.forEach(t -> {
        if (t.getParentId() == null || t.getParentId() == 0) {
            typesList.add(nodeTree(t, list));
        }
    });
    return typesList;
}
//types 父级的对象
public Types nodeTree(Types types, List<Types> list) {
    List<Types> typesList = new ArrayList<>();
    list.forEach(t -> {
        if (t.getParentId() != null && types.getId().equals(t.getParentId())) {
            typesList.add(nodeTree(t, list));
        }
    });
    types.setChildren(typesList);
    return types;
}

点滴
凡心所向,素履以往,生如逆旅,一苇以航
OωO
开启隐私评论,您的评论仅作者和评论双方可见
评论 ( 2 )
  1. 递归效率有些差,还有更优的方法嘛(PS:我遇到了类似的问题)?

    2022年07月30日回复
    1. @萧瑟

      只能说是通过缓存,或者其他方式,来做一下优化。

      2022年07月30日回复