创建类:
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; }