package cn.xa87.member.util;
import cn.xa87.model.Classify;
import java.util.ArrayList;
import java.util.List;
public class MenuTreeUtil {
private List<Classify> menuList = new ArrayList<Classify>();
public MenuTreeUtil(List<Classify> menuList) {
this.menuList = menuList;
}
public List<Classify> builTree() {
List<Classify> treeMenus = new ArrayList<Classify>();
for (Classify menuNode : getRootNode()) {
menuNode = buildChilTree(menuNode);
treeMenus.add(menuNode);
}
return treeMenus;
}
//递归,建立子树形结构
private Classify buildChilTree(Classify pNode) {
List<Classify> chilMenus = new ArrayList<Classify>();
for (Classify menuNode : menuList) {
if (menuNode.getParentId() != null && menuNode.getParentId().equals(pNode.getId())) {
chilMenus.add(buildChilTree(menuNode));
}
}
pNode.setChildren(chilMenus);
return pNode;
}
//获取根节点
private List<Classify> getRootNode() {
List<Classify> rootMenuLists = new ArrayList<Classify>();
for (Classify menuNode : menuList) {
boolean flag = this.getFinalRootNode(menuNode);
if (flag) {
rootMenuLists.add(menuNode);
}
}
return rootMenuLists;
}
private boolean getFinalRootNode(Classify menuNode) {
boolean flag = true;
List<Classify> rootMenuLists1 = new ArrayList<Classify>();
for (Classify menuNode1 : menuList) {
if (menuNode.getParentId()==menuNode1.getId()) {
flag = false;
}
}
return flag;
}
}
版权声明:本文为leng_zhi1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。