美文网首页
点餐系统后台菜单目录树的递归实现

点餐系统后台菜单目录树的递归实现

作者: ZengHuangDong | 来源:发表于2017-10-18 15:27 被阅读0次

    为了实现让系统后台的左侧栏菜单列表实现动态展示的效果,则通过后台管理对菜单组件进行增删改查,并通过递归构造的方法将查询结果以JSON目录树的形式返回提供给前台页面使用。

    核心代码:

    import java.util.ArrayList;

    import java.util.List;

    import org.slf4j.Logger;

    import org.slf4j.LoggerFactory;

    import net.sf.json.JSONArray;

    import net.sf.json.JSONObject;

    public class TreeMenu {

    private static final Logger logger = LoggerFactory.getLogger(TreeMenu.class);

    //菜单树形结构

    public JSONArray treeMenuList(JSONArray menuList, int parentId) {

    JSONArray  childMenuList = new JSONArray();

    for (Object object : menuList) {

    JSONObject jsonObject = JSONObject.fromObject(object);

    int menuId = Integer.parseInt(jsonObject.getString("id"));

    int pid = jsonObject.getInt("fatherMenuId");

    if (parentId==pid) {

    //递归遍历子菜单

    JSONArray jsonArray =  treeMenuList(menuList, menuId);

    jsonObject.put("childrenMenu", jsonArray);

    childMenuList.add(jsonObject);

    }

    }

    logger.info(childMenuList.toString());

    return childMenuList;

    }

    }

    其中重要的递归算法思路:

         递归入口:给定的根目录为递归入口,即parentId==0;

        递归出口:查询结果中不包含parentMenuId为给定的父菜单parentId,即 parentId!=pid;

    相关文章

      网友评论

          本文标题:点餐系统后台菜单目录树的递归实现

          本文链接:https://www.haomeiwen.com/subject/tdlsuxtx.html