1、什么是树形结构数据
在我们的项目中,前台作为页面的展示区域,可能需要你返回一些具有层级关系的数据,进行页面展示,如1.1所示。
1.1、展示在页面上的效果
2、Java实现树形结构数据
2.1、树对象
树对象的属性主要有四个(实际情况可能有所不同)。
- id(节点id)
- name(节点名称)
- fatherId(父节点id)
- List<树对象>chilNode(子节点数据)
2.2、示例代码
实现的代码如下,每一步都有注释,大家可以进行参考。
public List<TreeData> getTree(){
// 储存所有的子节点的数据
List<TreeData> tempList = new ArrayList<>();
// 储存最顶级父节点的数据
List<TreeData> resultList = new ArrayList<>();
//循环顶级父节点数据,目的是在每一个父级树节点中装填对应的子节点数据
List<TreeData> data_tree = new ArrayList<TreeData>();
// 递归装填数据
for (TreeData treeData : resultList) {
data_tree.add(getChildNode(tempList, treeData));
}
}
private TreeData getChildNode(List<TreeData> tempList, TreeData fatherTree) {
for (TreeData treeData : tempList) {
if (treeData.getFatherId() == fatherTree.getId()) {
fatherTree.getChildNode().add(treeData);
getChildNode(tempList, treeData);//注意这里
}
return fatherTree;
}
return fatherTree;}
基础的实现思路如上(实际情况结合业务代码后可能会扫许的复杂),当然也有更加简洁的实现方式(jdk1.8后用Lambda表达式几行就实现了,网上有很多例子,但实现思路是不变的)。
3、结束
一个人走的快,一群人走的远,一起学习,一起进步。