返回顶部
首页 > 资讯 > 精选 >Java实现树形结构的代码怎么写
  • 697
分享到

Java实现树形结构的代码怎么写

2023-06-30 14:06:10 697人浏览 薄情痞子
摘要

本篇内容介绍了“Java实现树形结构的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库表结构实现思路拿到有父子节点的集合数据遍

本篇内容介绍了“Java实现树形结构的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

数据库表结构

Java实现树形结构的代码怎么写

实现思路

拿到有父子节点的集合数据

遍历集合数据,拿到所有的根节点

遍历根节点,拿到所有的子节点

递归子节点,将递归的子节点接上其父节点,直到子节点为空,递归完成

递归好后以集合形式返回,返回前端时以JSON格式转换后返回

具体代码

1、造数据,和数据库表数据一致

package com.lyq.generateTree; import com.alibaba.fastjson.JSON; import java.util.ArrayList;import java.util.List; public class TreeMain {    public static void main(String[] args) {        List<Tree> list = new ArrayList<>();         //造数据        list.add(new Tree("22650", "0", "第一周"));        list.add(new Tree("22651", "22650", "1.1  随堂练习:《你认为以下属于人工智能的是什么呢?》,时间:0.5min"));        list.add(new Tree("22652", "22650", "1.2  主题讨论:《使用循环代码块绘制正五角星》,时间:5min"));        list.add(new Tree("22653", "22650", "1.3  主题讨论:《延时测试》,时间:0.5min"));        list.add(new Tree("22654", "22650", "1.4  调查问卷:《测试延时时间》, 时间:0.5min"));        list.add(new Tree("22655", "22650", "1.5  研究与挑战:翟文彪老师开播啦,时间:1min,[N]"));        list.add(new Tree("22656", "22650", "1.6  研究与挑战:米新江教授开播啦,时间:1min,[N]"));        list.add(new Tree("22657", "22656", "1.6.1  研究与挑战:丁中文老师开播啦,时间:1min,[N]"));        list.add(new Tree("22658", "22656", "1.6.2  研究与挑战:郝晓军老师开播啦,时间:1min,[N]"));        list.add(new Tree("22659", "22656", "1.6.3  研究与挑战:张娟老师开播啦,时间:1min,[N]"));        list.add(new Tree("22660", "22656", "1.6.4  研究与挑战:王怀军老师开播啦,时间:1min,[N]"));        list.add(new Tree("22661", "22656", "1.6.5  研究与挑战:何操老师开播啦,时间:1min,[N]"));        list.add(new Tree("22662", "22656", "1.6.6  研究与挑战:武新丽老师开播啦,时间:1min,[N]"));        list.add(new Tree("22663", "22656", "1.6.7  一键签到:人脸识别,时间:2min"));        list.add(new Tree("22664", "22656", "1.6.8  手势签到:人脸识别22,时间:2min"));        list.add(new Tree("22665", "22656", "1.6.9  研究与挑战:吴欣明老师开播啦,时间:1min,[N]"));        list.add(new Tree("22666", "22656", "1.6.10  研究与挑战:程艳艳老师开播啦,时间:1min,[N]"));        list.add(new Tree("22667", "22656", "1.6.11  研究与挑战:本学期课程内容,时间:0.5min"));        list.add(new Tree("22668", "22656", "1.6.12  研究与挑战:米老师的教学团队介绍,时间:0.3min"));        list.add(new Tree("22669", "22650", "1.7  研究与挑战:米老师的教学团队介绍,时间:0.3min"));        list.add(new Tree("22670", "22650", "1.8  研究与挑战:米老师的教学团队介绍,时间:0.3min"));        list.add(new Tree("22671", "22650", "1.9  研究与挑战:助教机器人提醒您参与活动,时间:2min"));        list.add(new Tree("22672", "22650", "1.10  研究与挑战:AR系统使用教程-学生端,时间:5min"));        list.add(new Tree("22673", "22672", "1.10.1  研究与挑战:不一样的课堂修改版,时间:0.5min"));        list.add(new Tree("22674", "22673", "1.10.1.1  研究与挑战:下载AR APP,时间:8min"));        list.add(new Tree("22675", "22674", "1.10.1.1.1  研究与挑战:修改版手机端AR助教机器人的登录,时间:5min"));        list.add(new Tree("22676", "22674", "1.10.1.1.2  研究与挑战:app页面展示,时间:2min"));        list.add(new Tree("22677", "22674", "1.10.1.1.3  研究与挑战:使用网页版方式, 时间:3min"));        list.add(new Tree("22678", "22674", "1.10.1.1.4  研究与挑战:《使用学习通账号密码登录AR网页版》,时间:5min"));        list.add(new Tree("22679", "22674", "1.10.1.1.5  主题讨论:修改时间2022年4月4日《上传:进入AR网页版后的界面》,时间:3min"));        list.add(new Tree("22680", "22673", "1.10.1.2  研究与挑战:AR学生端教程视频,时间:2min"));        list.add(new Tree("22681", "22672", "1.10.2  研究与挑战:修改时间2022年4月4日温馨提示-钉钉,时间:0.3min"));          list = new ReplacementTree().builTree(list);         String jsonString = JSON.toJSONString(list);        System.out.println(jsonString);    }}

2、树型结构实体类

package com.lyq.generateTree;  import java.util.ArrayList;import java.util.List; public class ReplacementTree {         public List<Tree> builTree(List<Tree> list) {        List<Tree> treeList = new ArrayList<>();        for (Tree tree : this.getRootnode(list)) {            //建立子树节点            tree = this.buildChilTree(tree,list);            //为根节点设置子树节点            treeList.add(tree);        }        return treeList;    }         private Tree buildChilTree(Tree tree,List<Tree> list) {        List<Tree> treeList = new ArrayList<>();        for (Tree t : list) {            //判断当前父节点是否存在子节点            if (t.getP_id().equals(tree.getId())) {                treeList.add(this.buildChilTree(t,list));            }        }        tree.setChildren(treeList);        return tree;    }         private List<Tree> getRootNode(List<Tree> list) {        List<Tree> rootList = new ArrayList<>();        for (Tree tree : list) {            if (tree.getP_id().equals("0")) {                rootList.add(tree);            }        }        return rootList;    }}

最后返回情况如下

Java实现树形结构的代码怎么写

“Java实现树形结构的代码怎么写”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java实现树形结构的代码怎么写

本文链接: https://lsjlt.com/news/329399.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java实现树形结构的代码怎么写
    本篇内容介绍了“Java实现树形结构的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库表结构实现思路拿到有父子节点的集合数据遍...
    99+
    2023-06-30
  • Java实现树形结构的示例代码
    目录前言数据库表结构实现思路具体代码1、造数据,和数据库表数据一致2、树型结构实体类前言 由于业务需要,后端需要返回一个树型结构给前端,包含父子节点的数据已经在数据库中存储好,现在需...
    99+
    2024-04-02
  • QtQTreeWidget树形结构实现代码
    Qt中实现树形结构可以使用QTreeWidget类,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。树形效果如下图所示: 这是怎么实现的呢?还有点...
    99+
    2024-04-02
  • Qt QTreeWidget树形结构怎么实现
    本篇内容介绍了“Qt QTreeWidget树形结构怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Qt中实现树形结构可以使...
    99+
    2023-06-21
  • vue实现树形结构增删改查的示例代码
    其实很多公司都会有类似于用户权限树的增删改查功能,正好最近我刚写了一个树形结构的增删改,在这里和大家分享一下,如果有不合理的地方欢迎评论,我会尽快优化~~ 先附上一下效果图 这个是没...
    99+
    2024-04-02
  • java实现红黑树的代码怎么写
    本篇内容介绍了“java实现红黑树的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 红黑树ja...
    99+
    2024-04-02
  • Java实现二叉树的代码怎么写
    本篇内容主要讲解“Java实现二叉树的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现二叉树的代码怎么写”吧!以此图为例,完整代码如下://基础二叉树实现//使用左右孩子表示...
    99+
    2023-06-29
  • java递归实现树形结构数据
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、树形结构是什么?二、实现方案1、stream流递归实现1.1 实体类1.2 实现类 2、jdk1.7以下实现2.1 节点类2.2 实现类...
    99+
    2023-08-18
    java 数据库 mysql
  • Java怎么用递归实现树形结构的工具类
    本文小编为大家详细介绍“Java怎么用递归实现树形结构的工具类”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么用递归实现树形结构的工具类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。需求描述有时候,我...
    99+
    2023-07-05
  • Java中树的存储结构实现示例代码
    一、树树与线性表、栈、队列等线性结构不同,树是一种非线性结构。一棵树只有一个根节点,如果一棵树有了多个根节点,那它已经不再是一棵树了,而是多棵树的集合,也被称为森林。二、树的父节点表示法树中除根节点之外每个节点都有一个父节点,为了记录树中节...
    99+
    2023-05-31
    java 存储结构
  • java编程两种树形菜单结构的转换代码
    首先看看两种树形菜单结构的代码示例。SingleTreeNode:package com.zzj.tree;public class SingleTreeNode {private int id;private int pId;privat...
    99+
    2023-05-30
    java 树形菜单 转换
  • JavaScript树形组件实现无限级树形结构
    目录​一、问题研究的背景和意义​​二、详细设计方案​​三、源代码实现(Java版)​​四、思考与总结​(1)XML层次结构(2)UL-LI层次结构(3)TABLE层次结构​一、问题研...
    99+
    2024-04-02
  • java实现省市区转换成树形结构
    本文实例为大家分享了java实现省市区转换成树形结构的具体代码,供大家参考,具体内容如下 前言:为什我想写这篇博客呢?第一方面是记录,另一方面是分享。 1.创建数据库表 1.建表语句...
    99+
    2024-04-02
  • springboot+mybatis plus怎么实现树形结构查询
    本篇内容介绍了“springboot+mybatis plus怎么实现树形结构查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录背景使用...
    99+
    2023-06-20
  • 纯css如何实现树形结构
    这篇文章将为大家详细讲解有关纯css如何实现树形结构,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。纯css实现属性结构css实现属性结构的思路是利用伪类实现树形结构连接线,如果想实现点击展开和收缩以及复选...
    99+
    2023-06-08
  • Java接口返回省市区树形结构的实现
    目录前言设计表结构Java代码调用接口查看结果前言 最近和前端联调接口,需要进行一个省市区联动,最终定的方案是通过接口返回一个树形结构给前端,类似这样的结构: 下面就把相关表和代码...
    99+
    2023-01-08
    Java 返回树形结构 Java 接口返回树形结构
  • Java递归实现树形结构的方式有哪些
    这篇文章主要介绍“Java递归实现树形结构的方式有哪些”,在日常操作中,相信很多人在Java递归实现树形结构的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java递归实现树形结构的方式有哪些”的疑...
    99+
    2023-07-04
  • sqlserver中怎么实现树形结构递归查询
    本篇文章为大家展示了sqlserver中怎么实现树形结构递归查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。公用表表达式(CTE),是一个在查询中定义的临时命名结...
    99+
    2024-04-02
  • JS实现树形结构与数组结构相互转换并在树形结构中查找对象
    总是有很多需求是关于处理树形结构的,所以不得不总结几个常见操作的写法。 首先假设有一个树形结构数据如下 var tree=[ { 'id': '1', 'name...
    99+
    2024-04-02
  • SpringBoot+MyBatisPlus+MySQL8实现树形结构查询
    本文实例为大家分享了SpringBoot+MyBatisPlus+MySQL8实现树形结构查询,供大家参考,具体内容如下 场景: 今天在实现权限功能模块时,需要将查询的权限数据,以树...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作