首页 > 学院 > 开发设计 > 正文

buildTree,无限递归建树

2019-11-06 06:04:16
字体:
来源:转载
供稿:网友
//1.传入parentIdpublic List<Map<String, Object>> buildTree(Integer parentId) throws DBException {        //2.定义一个List:tree,最后要返回这个List:tree        List<Map<String, Object>> tree = new ArrayList<Map<String, Object>>();        //3.如果这个parentId为空,就令parentId=根Id        if ( null == parentId) parentId = Constants.TREE_ROOT_ID;        //4.根据这个parentId得到一级目录:list        List<RelicsDataDictPo> list = listByParentId(parentId);         if (list.isEmpty()) return tree;//判断:如果是最后一级        //5.根据根目录list映射出一级目录的:id,name,parentId        for (RelicsDataDictPo obj : list) {                //6.定义一个map:用以存储一级目录的信息,包括id               Map<String, Object> map = new HashMap<String, Object>();               map.put("id", obj.getAutoId());               map.put("name", obj.getDictName());               map.put("parentId", obj.getParentId());                //7.将以这个目录的id作为parentId,递归建树,重回第一步                List<Map<String, Object>> subs = buildTree(obj.getAutoId());                if (!subs.isEmpty()) {                      map.put("children", subs);                }                tree.add(map);        }        return tree;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表