iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >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://www.lsjlt.com/news/329399.html(转载时请注明来源链接)

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java实现树形结构的代码怎么写
    本篇内容介绍了“Java实现树形结构的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!数据库表结构实现思路拿到有父子节点的集合数据遍...
    99+
    2023-06-30
  • Java实现树形结构的示例代码
    目录前言数据库表结构实现思路具体代码1、造数据,和数据库表数据一致2、树型结构实体类前言 由于业务需要,后端需要返回一个树型结构给前端,包含父子节点的数据已经在数据库中存储好,现在需...
    99+
    2022-11-13
  • QtQTreeWidget树形结构实现代码
    Qt中实现树形结构可以使用QTreeWidget类,也可以使用QTreeView类,QTreeWidget继承自QTreeView类。树形效果如下图所示: 这是怎么实现的呢?还有点...
    99+
    2022-11-12
  • Qt QTreeWidget树形结构怎么实现
    本篇内容介绍了“Qt QTreeWidget树形结构怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Qt中实现树形结构可以使...
    99+
    2023-06-21
  • vue实现树形结构增删改查的示例代码
    其实很多公司都会有类似于用户权限树的增删改查功能,正好最近我刚写了一个树形结构的增删改,在这里和大家分享一下,如果有不合理的地方欢迎评论,我会尽快优化~~ 先附上一下效果图 这个是没...
    99+
    2022-11-12
  • java递归实现树形结构数据
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、树形结构是什么?二、实现方案1、stream流递归实现1.1 实体类1.2 实现类 2、jdk1.7以下实现2.1 节点类2.2 实现类...
    99+
    2023-08-18
    java 数据库 mysql
  • java实现红黑树的代码怎么写
    本篇内容介绍了“java实现红黑树的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 红黑树ja...
    99+
    2022-10-19
  • Java实现二叉树的代码怎么写
    本篇内容主要讲解“Java实现二叉树的代码怎么写”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java实现二叉树的代码怎么写”吧!以此图为例,完整代码如下://基础二叉树实现//使用左右孩子表示...
    99+
    2023-06-29
  • 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 树形菜单 转换
  • springboot+mybatis plus怎么实现树形结构查询
    本篇内容介绍了“springboot+mybatis plus怎么实现树形结构查询”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录背景使用...
    99+
    2023-06-20
  • java实现省市区转换成树形结构
    本文实例为大家分享了java实现省市区转换成树形结构的具体代码,供大家参考,具体内容如下 前言:为什我想写这篇博客呢?第一方面是记录,另一方面是分享。 1.创建数据库表 1.建表语句...
    99+
    2022-11-12
  • sqlserver中怎么实现树形结构递归查询
    本篇文章为大家展示了sqlserver中怎么实现树形结构递归查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。公用表表达式(CTE),是一个在查询中定义的临时命名结...
    99+
    2022-10-18
  • Java递归实现树形结构的方式有哪些
    这篇文章主要介绍“Java递归实现树形结构的方式有哪些”,在日常操作中,相信很多人在Java递归实现树形结构的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java递归实现树形结构的方式有哪些”的疑...
    99+
    2023-07-04
  • Java接口返回省市区树形结构的实现
    目录前言设计表结构Java代码调用接口查看结果前言 最近和前端联调接口,需要进行一个省市区联动,最终定的方案是通过接口返回一个树形结构给前端,类似这样的结构: 下面就把相关表和代码...
    99+
    2023-01-08
    Java 返回树形结构 Java 接口返回树形结构
  • 详解Java递归实现树形结构的两种方式
    目录0、引言1、数据准备2、类型转化3、递归实现方法3.1、Java7及以下纯Java递归实现3.2、Java8及以上借助lamda表达式实现0、引言 在开发的过程中,很多业务场景需...
    99+
    2022-11-13
    Java递归实现树形结构 Java树形结构 Java递归
  • Java实现树形结构管理的组合设计模式
    目录介绍实现抽象构件叶子节点组合节点测试总结优点缺点应用场景介绍 Java组合模式(Composite Pattern)是一种结构型设计模式,允许你将对象组合成树状结构,并且能像使用...
    99+
    2023-05-17
    Java组合模式 Java设计模式 Java组合设计模式
  • java递归实现树形结构数据完整案例
    目录前言一、树形结构是什么?二、实现方案1、stream流递归实现1.1 实体类1.2 实现类2、jdk1.7以下实现2.1 节点类2.2 实现类3、应用场景3.1 用于前端方便展示...
    99+
    2023-05-17
    Java遍历树形结构 java递归详解 java树形数据结构
  • Java实现平铺列表(List)互转树形(Tree)结构
    目录需求实践List to Tree递归实现非递归实现实例实践Tree to List递归实现非递归实现实例总结很多时候为满足前后端交互的数据结构需求,往往我们需要把平铺的List数...
    99+
    2022-11-13
    Java List转树形Tree结构 Java 树形Tree转 List
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作