创建类:
package antu.sjzx.model;
import java.util.List;
public class Tree {
private String Id;
private String pId;
private List<Tree> childs;
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getpId() {
return pId;
}
public void setpId(String pId) {
this.pId = pId;
}
public List<Tree> getChilds() {
return childs;
}
public void setChilds(List<Tree> childs) {
this.childs = childs;
}
}
实现方法:
//传入所有节点信息,传入第几级菜单,通过根节点获取一个根的所有树信息
public static Tree treeRoot(List<Tree> sourceList,Tree rootMenu)
{
if (sourceList == null)
{
return null;
}
List<Tree> childList=new ArrayList<>();
for (Tree menu : sourceList) {
if(rootMenu.getId().equals(menu.getpId())){
Tree menuChild = treeRoot(sourceList, menu);
childList.add(menuChild);
}
}
rootMenu.setChilds(childList);
if(childList.size()>0){
for(Tree childMenu : childList){
treeRoot(sourceList,childMenu);
}
}
return rootMenu;
}
本文介绍了一种使用Java实现的树形数据结构,通过递归方法构建树状结构,适用于多级菜单等场景。该方法接受所有节点信息及指定根节点,返回包含所有子节点的树形结构。
5万+

被折叠的 条评论
为什么被折叠?



