某日有人问我怎样把类别表的数据在JAVA程序中构造。
第一答案就是递归咯~~~~
不过我一向不大记住以前的东西,所以另外想了个方法,就是借助Map把类别表的数据变成一棵树。
好吧我承认我是变相偷懒伪代码党
第一答案就是递归咯~~~~
不过我一向不大记住以前的东西,所以另外想了个方法,就是借助Map把类别表的数据变成一棵树。
/**
* 我是节点类~~ 嘻嘻嘻~~~~
*/
public class Node {
//节点ID
private Integer nId;
//节点名称
private String nName;
//父节点ID
private Integer pId;
//子节点集合
private List<Node> cNodes;
public void addChild(Node node) {
if (cNodes == null) {
cNodes = new ArrayList<Node>();
}
cNodes.add(node);
}
// 下面的get set 方法就省略了。
}
public class Builder {
public void build() {
// 首先把需要记录取出来放到一个Map集合里。
// 比如在数据可以中取出
Map map = new xxxxMap();
Node node;
// 如何查询数据库中的数据就不写了。。
........
while (rs.next()) {
//创建节点对象
node = new Node();
node.nId = rs.getInt(1);
.......
// 创建好就添加到集合里
map.put(node.nId, node);
}
// 获取到所有数据后需要遍历一次map。
for (Node n : map.values()) {
// 用当前对象的父节点ID在map中找出父节点对象
if (!(node = map.get(n.pId)) == null) {
// 为父节点对象添加子节点
node.addChild(n);
}
}//循环完毕树形结构也就出来啦~~~~~
}
}
好吧我承认我是变相偷懒伪代码党