构造树形数据, 超好用的递归代码。

在工作中我们经常会构造无限级的树形数据。此时构造可以使用下面的这个方法,num 参数是根节点的父级编号(该父级编号在表中查不到编号为该父级编号的结点),List集合指的是所有符合条件的结点实体。调用这个方法,会发现表中的children即为子节点,已经封装好了数据,直接返回给前台即可。

   /**
   * 递归获得全部子
     * 
     * @param num
     * @param list
     * @return
     */
    private List<Map<String, Object>> getTreeChild(String    num,List<Map<String,Object>> list) {
        List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
        Iterator<Map<String, Object>> iterator = list.iterator();
        while (iterator.hasNext()) {
            Map<String, Object> map = iterator.next();
            // 父节点等于num的放入resultList
            if (num.equals((String) map.get("parentThingNum"))) {
                resultList.add(map);
                iterator.remove();
            }
        }
        if (!resultList.isEmpty()) {
            for (Map<String, Object> map : resultList) {
                List<Map<String, Object>> childList = getTreeChild((String)            map.get("thingNum"), list);
                if (!childList.isEmpty()) {
                    map.put("children", childList);
                }
            }
        }
        return resultList;
    }

猜你喜欢

转载自blog.csdn.net/huxiaochao_6053/article/details/86599462