递归算法创建树形实体数组
菜单实体类:
public class JwMenu implements java.io.Serializable {
private Integer menuid;
private String menuname;
private Integer formid;
private Integer formtype;
private Integer parentmenu;
private Integer inactived;
private String moduleid;
private String memo;
private Integer seq;
private String liPermition;
private ListChildren;
public JwMenu() {
}}
/**
* 使用递归方法建树
* @param treeNodes
* @return
*/
public static ListbuildByRecursive(ListtreeNodes) {
Listtrees = new ArrayList();
for (JwMenu treeNode : treeNodes) {
if (treeNode.getParentmenu() ==null || 0==treeNode.getParentmenu() ) {
trees.add(findChildren(treeNode,treeNodes));
}
}
return trees;
}
/**
* 递归查找子节点
* @param treeNodes
* @return
*/
public static JwMenu findChildren(JwMenu treeNode,ListtreeNodes) {
for (JwMenu it : treeNodes) {
if(treeNode.getMenuid().equals(it.getParentmenu())) {
if (treeNode.getChildren() == null) {
treeNode.setChildren(new ArrayList());
}
treeNode.getChildren().add(findChildren(it,treeNodes));
}
}
return treeNode;
}