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.
树形菜单非常常见的需求。
树形菜单我们常见的一种需求。
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();
}
}
1.建立一张父子关系表
2.遍历父子节点
3.返回节点控制
这种方式就是前段整理好对应的json格式的树形结构,后端存储的时候
保存这个json 串。
添加的时候增加到对应的一个字段中,这个字段存储的是json 字符。
当前台界面变化时,数据的组织形式发生改变,
当没有的时候,字段为空,不矛盾。
提供增加和修改的方法,
当修改的时候,
一种思路是:
先查出对应的json 串,把json 看成一个bean 实体,然后解析封装成一个实体,设置对应的bean 实体,更改变化的树节点,然后保存
另一种思路是:
当删除时,前端重新组包,格式化更新到数据库中。
即可
参考资料
官方文档
开源社区
博客文章
书籍推荐
欢迎阅读,各位老铁,如果对你有帮助,点个赞加个关注呗!同时,期望各位大佬的批评指正~