要想进步先学cv 2023-02-24 11:13 采纳率: 25%
浏览 30
已结题

Java list转成tree

将list的当前层放到前一层的children里,例如list.size=5,0为最顶级,5放入4中,4放入3中.最终得到长度为1的list,children里套四层

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-24 15:11
    关注
    • 建议你看下这篇博客👉 :java List数据封装Tree结构
    • 除此之外, 这篇博客: Java中List转Tree、List转化深林树、Tree转List中的 四、Tree转List 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 需求修改权限,跟前端妹子协商好参数,也是通过树形化传给后台

      实现思路

      1. 获取前端传给的树形列表;
      2. 定义一个空的List用来添加权限列表
      3. 把一级目录权限添加都List集合
      4. 在判断有子孙节点是否有元素
      5. 递归遍历子孙节点添加List集合
      @Override
          public Boolean savePermission(PermissionTreeReq permissionTreeReq) {
      
              log.info("savePermission.req permissionTreeReq={}", JSON.toJSONString(permissionTreeReq));
              List<PermissionTreeResp> permissionRespList = new LinkedList<>();
              List<PermissionTreeResp> permissionTreeList = permissionTreeReq.getPermissionTreeResps();
              // 树转化成List
              treeToList(permissionRespList, permissionTreeList);
              log.info("treeToList={}",JSON.toJSONString(permissionRespList));
              return Boolean.TRUE;
          }
          /**
           * 数转换成List
           * @param permissionRespList
           * @param permissionTreeList
           * @date: 2021/3/9 22:23
           * @return: void
           */
          private void treeToList(List<PermissionTreeResp> permissionRespList, List<PermissionTreeResp> permissionTreeList) {
              
              for (PermissionTreeResp permissionTreeResp : permissionTreeList) {
                  permissionRespList.add(permissionTreeResp);
                  if (CollectionUtil.isNotEmpty(permissionTreeResp.getChildren())) {
                      treeToList(permissionRespList,permissionTreeResp.getChildren());
                  }
              }
          }

      感谢大家看到最后,如文章有不足,欢迎大家在评论区支持,给予意见。如果觉得我的文章对你有帮助,那就给我一个赞同吧!

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 专家已采纳回答 2月27日
  • 创建了问题 2月24日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。