千家信息网

用JAVA写无限级树形菜单代码

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"用JAVA写无限级树形菜单代码 ",在日常操作中,相信很多人在用JAVA写无限级树形菜单代码 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"用JAVA
千家信息网最后更新 2026年11月03日用JAVA写无限级树形菜单代码

这篇文章主要介绍"用JAVA写无限级树形菜单代码 ",在日常操作中,相信很多人在用JAVA写无限级树形菜单代码 问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"用JAVA写无限级树形菜单代码 "的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

由于工作中经常碰见树形结构所写的一个公用方法,虽然之前有过无限级的代码不过都限制于对象,对象不同或对象中字段不同都无法使用。

此方法可以接受任意类型的List集合,返回时是已经拼接好了所有子集的List集合。注意方法接收的List合返回的List是同一个对象。

此方法采用的是Map形式实现,所以在参数方面需要提供字段名,这样就可以避免父级和自己字段不同从而多写很多重复的代码。另外子集的名称是可以自定义的。如果名字和我重构方法中相同可以用重构方法(其实这个没啥用就是可能方便一点)

自己写的大佬勿喷,如果有更好的方式可以评论,感谢大家!

private static List> all;/** * * @param list 任何类型的list集合 * @param id 本层的id的字段名 * @param parentId 上一层Id的字段名 * @param childrenListName 对象中子集的名 * @param firstId 最高层的父级Id * @return 返回任意类型List * @throws Exception 转换异常 */public static List toJson(List list, String id, String parentId, String childrenListName,Integer firstId) throws Exception {    List> mapList = new ArrayList<>();    for(Object o : list){        Map map = ObjectToMapUtils.objectToMap(o);        mapList.add(map);    }    all = new ArrayList<>(mapList);    List> root = new ArrayList<>();    for(Map map : mapList){        if(Integer.parseInt(map.get(parentId).toString()) == firstId){            root.add(map);        }    }    all.removeAll(root);    for(Map map : root){        map.put(childrenListName,getChildren(map,id,parentId,childrenListName));    }    Gson gson = new Gson();    List lists = gson.fromJson(JSONObject.toJSONString(root),list.getClass());    return lists;}public static List toJson(List list) throws Exception{    return toJson(list,"id","parentId","list",-1);}public static List toJson(List list,String id) throws Exception{    return toJson(list,id,"parentId","list",-1);}public static List toJson(List list,String id,String parentId) throws Exception{    return toJson(list,id,parentId,"list",-1);}public static List toJson(List list,String id,String parentId,String childrenListName) throws Exception{    return toJson(list,id,parentId,childrenListName,-1);}public static List> getChildren(Map parent,String id,String parentId,String childrenListName){    List> mapList;    if(parent.containsKey(childrenListName) && parent.get(childrenListName) != null){        mapList = (List>) parent.get(childrenListName);    }else{        mapList = new ArrayList<>();    }    for(Map map : all){        if(Integer.parseInt(parent.get(id).toString()) == Integer.parseInt(map.get(parentId).toString())){            mapList.add(map);        }    }    if(mapList != null){        all.removeAll(mapList);        for(Map map : mapList){             map.put(childrenListName,getChildren(map,id,parentId,childrenListName));         }    }    return mapList;}public static void main(String[] arg){    List list = new ArrayList<>();    try{        TreeUtils.toJson(list,"id","parentId","list",0);    }catch (Exception e){    }}

到此,关于"用JAVA写无限级树形菜单代码 "的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

代码 树形 字段 对象 方法 菜单 学习 不同 子集 类型 更多 此方法 帮助 重构 实用 最高 相同 接下来 参数 名字 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州淘业互联网络科技 湖南永感互联网科技有限公司 深圳互联网科技公司 科技服务与互联网 成都互联网科技公司 西安互联网科技公司 长亮科技 互联网金融 撒么互联网科技公司 互联网公司会议桌创意科技软装饰 西藏七维空间互联网科技有限公司 济南华为互联网科技产业总部基地 北京华百购互联网科技有限公司 顶级互联网科技成果有哪些 互联网科技项目计划书材料类 徐州市互联网科技有限公司 互联网科技圈年度人物 小米互联网科技园入驻 从那以后互联网科技有限公司 求路客互联网科技电话 10位科技互联网大佬 什么是科技互联网 嘟嘟瓜互联网科技 亿策互联网科技 国外互联网科技网站 新华互联网科技校企合作 互联网科技产品 青岛中康互联网医疗科技有限公司 华夏恒生科技与互联网科技 中国互联网有什么科技 易租星互联网科技有限公司
0