开始准备工作
创建数据库表,结构如下:
create table demo { id int(11) not null default 0 , name varchar(32) not null , parent_id int(11) default null} comment '树形结构基本信息表'
![7705eb0a1c3e68881633da1b1fc75aaf.png](https://i-blog.csdnimg.cn/blog_migrate/0fbb4bdfedc5c2601330b44dd7d17613.jpeg)
计算机
执行插入数据
insert into demos values (1,'顶级',null);insert into demos values (2,'软件开发',1);insert into demos values (3,'java开发',2);insert into demos values (4,'企业建站',3);。。。
开始组装树形结构
//创建基本信息类@Bean //自动注入get set方法class Demo {private int id;private String name;private int parentId;private List children;}//从数据库读取数据 这里不再赘述,返回的信息 是 List集合//接下来,我们开始进行封装class treeUtil{public void getParent(List lis){ Demo root = new Demo(): lis.forEach(m->{ if(m.getParentId()==null){ //得到顶级数据 root=m; findChildren(root,List lis); } });} public void findChildren(Demo root , List lis){ lis.forEach(m->{ if(m.getParentId()==root.getId()){ if(root.getChildren()==null){ root.setChildren(new ArrayList<>()); } root.getChildren().add(m); findChildren(m,lis); } }); }}//通过上述代码,基本上树形结构就成型了,赶紧去试试吧,如果还有什么不明白的可以在下方评论留言哦。
总结
其实组装成树形结构并不复杂,主要在于我们需要理清思路,采用递归进行查询,并且找到一个终止条件即可完成树形结构的组装。上述语法采用了jdk1.8的新特性语法糖结构,看不懂的小伙伴可以在下方留言哦。
欢迎对在下进行茶语论道。
![4ed9ad08a2340e570f7614c38559d983.png](https://i-blog.csdnimg.cn/blog_migrate/031445ac5b5a39b4329366e504b56c9c.jpeg)