首页 > 代码库 > java 遍历所有子节点

java 遍历所有子节点

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/**
 *
 */
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;
     }
 
      
 
    }