当前位置: 首页 > news >正文

上海专业网站建设公司排名如何选择网站的关键词

上海专业网站建设公司排名,如何选择网站的关键词,创意营销点子,wordpress 分类图片java list集合转树结构#xff08;treeList#xff09; 我们在实际开发中#xff0c;肯定会用到树结构#xff0c;如部门树、菜单树等等。Java后端利用递归思路进行构建树形结构数据#xff0c;返回给前端#xff0c;能以下拉菜单等形式进行展示。今天#xff0c;咱们就…java list集合转树结构treeList 我们在实际开发中肯定会用到树结构如部门树、菜单树等等。Java后端利用递归思路进行构建树形结构数据返回给前端能以下拉菜单等形式进行展示。今天咱们就来说说怎么样将List集合转换成TreeList。一、简介 树是nn0个结点的有限集。当n 0时称为空树。在任意一棵非空树中应满足 有且仅有一个特定的称为根的结点。 当n1时其余节点可分为mm0个互不相交的有限集T1,T2,…,Tm其中每个集合本身又是一棵树并且称为根的子树。 显然树的定义是递归的即在树的定义中又用到了自身树是一种递归的数据结构。树作为一种逻辑结构同时也是一种分层结构具有以下两个特点 树的根结点没有前驱除根结点外的所有结点有且只有一个前驱。树中所有结点可以有零个或多个后继。因此n个结点的树中有n-1条边。二、代码实现 1.jar依赖 为了简化代码引入Lombok的Jar包可省略实体类set()、get()方法org.projectlombok lombok 1.16.12 2.树节点数据类 /*** TreeNode 树节点 定义每一个节点的信息即每一个节点对应一条数据信息*/ Data public class TreeNode {/** 节点ID */private Integer id;/** 父节点ID顶级节点为0 */private Integer parentId;/** 节点名称 */private String label;/** 子节点 */private ListTreeNode children;public TreeNode(Integer id, Integer parentId, String label) {this.id id;this.parentId parentId;this.label label;} }3.构建树形类 理解思路 1、首先获取所有的根节点顶级节点即根节点的parentId 0。 2、根据每一个根节点与所有节点集合数据进行判断当前节点是否为其下的子节点。 3、若是则递归调用构建树形若不是则表明该节点不属于其下子节点。 4、应继续循环判断节点父子关系直到所有节点与根节点判断完毕。 /*** BuildTree 构建树形结构*/ public class TreeBuild {// 保存参与构建树形的所有数据通常数据库查询结果public ListTreeNode nodeList new ArrayList();/*** 构造方法* param nodeList 将数据集合赋值给nodeList即所有数据作为所有节点。*/public TreeBuild(ListTreeNode nodeList){this.nodeList nodeList;}/*** 获取需构建的所有根节点顶级节点 0* return 所有根节点List集合*/public ListTreeNode getRootNode(){// 保存所有根节点所有根节点的数据ListTreeNode rootNodeList new ArrayList();// treeNode查询出的每一条数据节点for (TreeNode treeNode : nodeList){// 判断当前节点是否为根节点此处注意若parentId类型是String则要采用equals()方法判断。if (0 treeNode.getParentId()) {// 是添加rootNodeList.add(treeNode);}}return rootNodeList;}/*** 根据每一个顶级节点根节点进行构建树形结构* return 构建整棵树*/ public ListTreeNode buildTree(){// treeNodes保存一个顶级节点所构建出来的完整树形ListTreeNode treeNodes new ArrayListTreeNode();// getRootNode()获取所有的根节点for (TreeNode treeRootNode : getRootNode()) {// 将顶级节点进行构建子树treeRootNode buildChildTree(treeRootNode);// 完成一个顶级节点所构建的树形增加进来treeNodes.add(treeRootNode);}return treeNodes; }/*** 递归-----构建子树形结构* param pNode 根节点顶级节点* return 整棵树*/ public TreeNode buildChildTree(TreeNode pNode){ListTreeNode childTree new ArrayListTreeNode();// nodeList所有节点集合所有数据for (TreeNode treeNode : nodeList) {// 判断当前节点的父节点ID是否等于根节点的ID即当前节点为其下的子节点if (treeNode.getParentId().equals(pNode.getId())) {// 再递归进行判断当前节点的情况调用自身方法childTree.add(buildChildTree(treeNode));}}// for循环结束即节点下没有任何节点树形构建结束设置树结果pNode.setChildren(childTree);return pNode; }} 三、测试案例 /** TreeController 树控制层 方式传递所有数据集合作为参数调用buildTree()构建树形。 */ RestController RequestMapping(“/tree”) public class TreeController { GetMapping(“/treeTest”) public AjaxResult treeTest(){ // 模拟测试数据通常为数据库的查询结果 ListTreeNode treeNodeList new ArrayList(); treeNodeList.add(new TreeNode(1,0,顶级节点A)); treeNodeList.add(new TreeNode(2,0,顶级节点B)); treeNodeList.add(new TreeNode(3,1,父节点是A)); treeNodeList.add(new TreeNode(4,2,父节点是B)); treeNodeList.add(new TreeNode(5,2,父节点是B)); treeNodeList.add(new TreeNode(6,3,父节点的ID是3));// 创建树形结构数据集合作为参数 TreeBuild treeBuild new TreeBuild(treeNodeList); // 原查询结果转换树形结构 treeNodeList treeBuild.buildTree(); // AjaxResult个人封装返回的结果体 return AjaxResult.success(测试数据,treeNodeList);} } 最终的测试结果json {msg”“ 测试数据”code: 200,data: [{id: 1,parentId: 0,label顶级节点A,children: [{id: 3,parentId: 1,label“ 父节点是Achildren: [id: 6,parentId: 3,label“ 父节点的ID是3}]}]}, {id: 2,parentId: 0,labe1“ 顶级节点B,children: [{id: 4,parentId: 2,label“ 父节点是B},{id: 5,parentId: 2,label 父节点是B}]} ] }本文介绍的是通过Java代码将list集合转为树形结构数据如有不对可以或更好的方案欢迎指出和讨论。
http://www.sadfv.cn/news/117755/

相关文章:

  • 国内购物网站排名淄博建网站哪家好
  • 青海做网站需要多少钱建设内网网站流程
  • 网站开发与软件销售网页分析
  • 游戏开发大亨最佳搭配湘潭企业关键词优化厂家报价
  • 汕头网站建设科技有限公司wordpress 侧边悬浮窗
  • 成都装修设计公司网站做网站的公司苏州
  • php 网站部署网站建设阿里
  • 精品网站做爆款四川有那些网站建设公司
  • 全影网的网站哪儿做d网站建设开发服务费怎么做账
  • 微软网站开发技术个人工作室注册流程及费用
  • 深圳官网建站服务商申诉网站风险
  • 万网主机怎么上传网站吗茅台酒国内营销网络
  • 国外手机设计网站免费手机照片恢复软件
  • 卖酒的网站做线下怎么做wordpress循环插件
  • 别人做的网站自己根目录吗3d设计软件有哪些软件
  • 昆明网站设计公司360浏览器网页
  • 将网站保存怎么做手机浏览wordpress
  • 手机网站app制作公司个人电脑做外网网站
  • 企业网站建设咨询个人业务网站制作
  • 淄博网站代运营被骗怎么追回
  • 网站繁体和中文这么做帝国做网站怎么加视频
  • 网站首页的psd怎么做电商网站开发需要什么语言
  • 规划管理部门的网站建设广州网站运营专注乐云seo
  • 如何在12366网站上做实名认证苏州网页制作培训
  • 简单个人网站欣赏凡科网手机版下载
  • 1999年怎样建立企业网站可以上传高清图片的网站并做外链
  • 江苏林润建设工程有限公司网站网站慢的原因
  • 成都企业网站建设凡科网登录手机端
  • 能直接用网站做海报吗互联网技术对人力资源管理的影响有哪些
  • 北京网站建设公司网站优化韩式风格的网页设计欣赏