您的位置:首页 > 编程语言 > Java开发

java 遍历所有子节点

2014-05-08 13:17 417 查看
/**
*
*/
package com.test.controller;

import java.util.ArrayList;
import java.util.List;

/**
* @author ST2014-12
*
*/
public class FindAllChildren {

List<Long> childrenIdList=new ArrayList<Long>();
static List<Node> nodeList=new ArrayList<Node>();

public static void main(String[] args) {

Node node1 = new Node(1l, "蔬菜", 0l);
Node node2 = new Node(2l, "水产", 0l);
Node node3 = new Node(3l, "畜牧", 0l);
Node node4 = new Node(4l, "瓜类", 1l);
Node node5 = new Node(5l, "叶类", 1l);
Node node6 = new Node(6l, "丝瓜", 4l);
Node node7 = new Node(7l, "黄瓜", 4l);
Node node8 = new Node(8l, "白菜", 5l);
Node node9 = new Node(9l, "虾", 2l);
Node node10 = new Node(10l, "鱼", 2l);
Node node11 = new Node(11l, "牛", 3l);

nodeList.add(node1);
nodeList.add(node2);
nodeList.add(node3);
nodeList.add(node4);
nodeList.add(node5);
nodeList.add(node6);
nodeList.add(node7);
nodeList.add(node8);
nodeList.add(node9);
nodeList.add(node10);
nodeList.add(node11);

FindAllChildren queryCh=new FindAllChildren();

System.out.println(queryCh.getChildrenId(2l));
}

private String getChildrenId(long level) {
// TODO Auto-generated method stub

List<Node> childrenList=getChildrenList(level);
//遍历子节点列表
queryChildrenList(childrenList);

return childrenIdList.toString();
}
//递归获取每个节点下子节点
void queryChildrenList(List<Node> childrenList){

for(Node n : childrenList){ //遍历列表中每个节点
List<Node>chilList= getChildrenList(n.getId());//获取每个节点的子节点列表

queryChildrenList(chilList);

}

};
//遍历全列表 查询所传id 下的子节点
private List<Node> getChildrenList(Long level) {
List<Node> childrenList=new ArrayList<Node>();//获取该节点的子节点列表
// TODO Auto-generated method stub
for(Node n : nodeList){
if(n.getParentId()==level){
childrenList.add(n);
childrenIdList.add(n.getId());
}
}

return childrenList;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: