您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

使用递归算法结合数据库解析成Java树形结构的代码解析

2024/4/23 23:12:13发布18次查看
这篇文章主要介绍了使用递归算法结合数据库解析成java树形结构的代码解析的相关资料,需要的朋友可以参考下
1、准备表结构及对应的表数据
a、表结构:
create table tb_tree ( cid number not null, cname varchar2(50), pid number //父节点 )
b、表数据:
insert into tb_tree (cid, cname, pid) values (1, '中国', 0); insert into tb_tree (cid, cname, pid) values (2, '北京市', 1); insert into tb_tree (cid, cname, pid) values (3, '广东省', 1); insert into tb_tree (cid, cname, pid) values (4, '上海市', 1); insert into tb_tree (cid, cname, pid) values (5, '广州市', 3); insert into tb_tree (cid, cname, pid) values (6, '深圳市', 3); insert into tb_tree (cid, cname, pid) values (7, '海珠区', 5); insert into tb_tree (cid, cname, pid) values (8, '天河区', 5); insert into tb_tree (cid, cname, pid) values (9, '福田区', 6); insert into tb_tree (cid, cname, pid) values (10, '南山区', 6); insert into tb_tree (cid, cname, pid) values (11, '密云县', 2); insert into tb_tree (cid, cname, pid) values (12, '浦东', 4);
2、treenode对象,对应tb_tree
public class treenode implements serializable { private integer cid; private string cname; private integer pid; private list nodes = new arraylist(); public treenode() { } //getter、setter省略 }
3、测试数据
public class treenodetest { @test public void loadtree() throws exception{ system.out.println(jsonutils.javatojson(recursivetree(1))); } /** * 递归算法解析成树形结构 * * @param cid * @return * @author jiqinlin */ public treenode recursivetree(int cid) { //根据cid获取节点对象(select * from tb_tree t where t.cid=?) treenode node = personservice.getreenode(cid); //查询cid下的所有子节点(select * from tb_tree t where t.pid=?) list childtreenodes = personservice.querytreenode(cid); //遍历子节点 for(treenode child : childtreenodes){ treenode n = recursivetree(child.getcid()); //递归 node.getnodes().add(n); } return node; } }
输出的json格式如下:
{ "cid": 1, "nodes": [ { "cid": 2, "nodes": [ { "cid": 11, "nodes": [ ], "cname": "密云县", "pid": 2 } ], "cname": "北京市", "pid": 1 }, { "cid": 3, "nodes": [ { "cid": 5, "nodes": [ { "cid": 7, "nodes": [ ], "cname": "海珠区", "pid": 5 }, { "cid": 8, "nodes": [ ], "cname": "天河区", "pid": 5 } ], "cname": "广州市", "pid": 3 }, { "cid": 6, "nodes": [ { "cid": 9, "nodes": [ ], "cname": "福田区", "pid": 6 }, { "cid": 10, "nodes": [ ], "cname": "南山区", "pid": 6 } ], "cname": "深圳市", "pid": 3 } ], "cname": "广东省", "pid": 1 }, { "cid": 4, "nodes": [ { "cid": 12, "nodes": [ ], "cname": "浦东", "pid": 4 } ], "cname": "上海市", "pid": 1 } ], "cname": "中国", "pid": 0 }
以上就是使用递归算法结合数据库解析成java树形结构的代码解析的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product