Java 动态树的实现
- 目录
- 概述
- 需求:
 
- 设计思路
- 实现思路分析
- 1. 简单Java实现:
- 2.建立父子表存储
- 3.前端的对应的json 字符串方式
 
 
- 参考资料和推荐阅读
Survive by day and develop by night.
talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for change,challenge Survive.
happy for hardess to solve denpendies.
目录

概述
树形菜单非常常见的需求。
需求:
设计思路
树形菜单我们常见的一种需求。
实现思路分析
1. 简单Java实现:
Java 动态树的实现思路如下:
- 定义树节点类:首先需要定义一个树节点类,包含节点值和子节点列表。
class TreeNode {
    int value;
    List<TreeNode> children;
}
- 实现动态添加子节点的方法:通过给树节点类添加一个方法,可以动态地添加子节点。
class TreeNode {
    int value;
    List<TreeNode> children;
    void addChild(TreeNode child) {
        if (children == null) {
            children = new ArrayList<>();
        }
        children.add(child);
    }
}
- 实现动态删除子节点的方法:同样给树节点类添加一个方法,可以动态地删除子节点。
class TreeNode {
    int value;
    List<TreeNode> children;
    void removeChild(TreeNode child) {
        if (children != null) {
            children.remove(child);
        }
    }
}
- 实现遍历树节点的方法:可以使用递归或者栈来实现树的遍历。以下是一个递归的示例:
class TreeNode {
    int value;
    List<TreeNode> children;
    void traverse() {
        System.out.println(value);
        if (children != null) {
            for (TreeNode child : children) {
                child.traverse();
            }
        }
    }
}
- 创建根节点和添加子节点:使用上述定义的树节点类,可以创建根节点并添加子节点。
public class Main {
    public static void main(String[] args) {
        TreeNode root = new TreeNode();
        root.value = 1;
        TreeNode child1 = new TreeNode();
        child1.value = 2;
        root.addChild(child1);
        TreeNode child2 = new TreeNode();
        child2.value = 3;
        root.addChild(child2);
        root.traverse();
    }
}
2.建立父子表存储
1.建立一张父子关系表
 2.遍历父子节点
 3.返回节点控制
3.前端的对应的json 字符串方式
这种方式就是前段整理好对应的json格式的树形结构,后端存储的时候
 保存这个json 串。
 添加的时候增加到对应的一个字段中,这个字段存储的是json 字符。
 当前台界面变化时,数据的组织形式发生改变,
 当没有的时候,字段为空,不矛盾。
 提供增加和修改的方法,
 当修改的时候,
 一种思路是:
 先查出对应的json 串,把json 看成一个bean 实体,然后解析封装成一个实体,设置对应的bean 实体,更改变化的树节点,然后保存
 另一种思路是:
 当删除时,前端重新组包,格式化更新到数据库中。
 即可
参考资料和推荐阅读
参考资料
 官方文档
 开源社区
 博客文章
 书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~









![[电磁学]大学物理陈秉乾老师课程笔记](https://img-blog.csdnimg.cn/direct/6c3b68fd0cc8470ab44170b13878fb03.png)








