java树结构数据转换(递归)

public List<Map<String, Object>> getTree(){
        List<Map<String, Object>> treedata = configMapper.getTree();
        List<Map<String, Object>> list = new ArrayList<>();
        for(Map<String, Object> map:treedata){
            String parentid = map.get("pid").toString();
            if(parentid.equals("0")){
                Map<String, Object> treeObject  = new HashMap<>();
                treeObject.put("id", map.get("id"));
                treeObject.put("name", map.get("name"));
                treeObject.put("children", getTarget(treedata,map.get("id").toString()));
                list.add(treeObject );
            }
        }
        return list;
    }
    /**
     * 获得指定节点
     * @param treedata
     * @param id
     * @return
     */
    private List<Map<String, Object>> getTarget(List<Map<String, Object>> treedata,String id) {
        List<Map<String, Object>> list = new ArrayList<>();
        for (Map<String, Object> node : treedata) {
            String pid = node.get("pid").toString();
            if (pid.equals(id)){
                Map<String, Object> obj = new HashMap<>();
                obj.put("id", node.get("id"));
                obj.put("name", node.get("name"));
                obj.put("children", getTarget(treedata,node.get("id").toString()));
                list.add(obj);
            }
        }

        return list;
    }


版权声明:本文为qq_38410795原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。