zoukankan      html  css  js  c++  java
  • Java 查询数据后进行递归操作

    java的递归方法记录:

    private List<Map<String, Object>> generateOrgMapToTree(List<Map<String, Object>> orgMaps, Integer pid) {
            if (null == orgMaps || orgMaps.size() == 0) {
                List<StatusResponseCodeEntity> list = statusResponseCodeRepository.findAll();
                String json_list = JSONObject.toJSONString(list);
                orgMaps = (List<Map<String, Object>>) JSONObject.parse(json_list);
            }
            List<Map<String, Object>> orgList = new ArrayList<>();
            if (orgMaps != null && orgMaps.size() > 0) {
                for (Map<String, Object> item : orgMaps) {
                    //比较传入pid与当前对象pid是否相等
                    if (pid.equals(item.get("pid"))) {
                        //将当前对象id做为pid递归调用当前方法,获取下级结果
                        List<Map<String, Object>> children = generateOrgMapToTree(orgMaps, Integer.valueOf(item.get("id").toString()));
                        //将子结果集存入当前对象的children字段中
                        item.put("children", children);
                        //添加当前对象到主结果集中
                        orgList.add(item);
                    }
                }
            }
            return orgList;
        }

    调用时操作:

    public String ResponseCode() {
            List<Map<String, Object>> list = generateOrgMapToTree(new ArrayList<>(), 0);
            String html = "";
            if (list.size() == 0) {
                html += "暂无信息";
                return html;
            }
            for (Map<String, Object> item : list) {
                List<Map<String, Object>> list_child = (List<Map<String,Object>>) item.get("children");
                html += "<br/>";
                html += "<h3>"+ item.get("message") +"</h3>";
                if (list_child.size() == 0) {
                    html += "暂无信息";
                    continue;
                }
                //输出返回信息
                for (Map<String, Object> child : list_child) {
                    html += child.get("message");
                }
            }
    
            return html;
        }
  • 相关阅读:
    linux动态库加载路径修改
    RAII手法封装互斥锁
    比特数组
    c++行事准则
    构造函数初始化列表
    this与const
    不完全类型
    Django初学习(四):模板-上下文管理器的使用
    Django初学习(三):模板的使用
    Django初学习(二):路由&子路由
  • 原文地址:https://www.cnblogs.com/betx/p/8669687.html
Copyright © 2011-2022 走看看