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;

     }

     

    }

    

   

java 遍历所有子节点

时间: 2024-07-29 06:48:04

java 遍历所有子节点的相关文章

SQL SERVER 2000 遍历父子关系数据的表(二叉树)获得所有子节点 所有父节点及节点层数函数

---SQL SERVER 2000 遍历父子关系數據表(二叉树)获得所有子节点 所有父节点及节点层数函数---Geovin Du 涂聚文--建立測試環境Create Table GeovinDu([ID] Int, fatherID Int, [Name] Varchar(10))Insert A Select 1, 0, '中国'Union All Select 2, 1, '广东'Union All Select 3, 1, '北京'Union All Select 4, 2, '深圳特区

MySQL中进行树状所有子节点的查询【转】

在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. 在MySQL中如果是有限的层次,比如我们事先如果可以确定这个树的最大深度是4, 那么所有节点为根的树的深度均不会超过4,则我们可以直接通过left join 来实现. 但很多时候我们无法控制树的深度.这时就需要在MySQL中用存储过程来实现或在你的程序中来实现这个递归.本文讨论一下几种实现的方法.

js解析多层嵌套的json,取出所有父元素属性和遍历所有子元素

已知一个多层嵌套的json,取出所有父元素和子元素的id值 思路:因为不知道到底嵌套了多少层,递归有可能造成栈溢出.查询时间特别久的问题 所以先查询一次,判断是否有子节点,如果有,取出子节点并到父节点上,并动态更改数据长度,这样无限循环处理json取出所有id menuIdInit () { var _this = this; var _menu = _this.menus; var menuId = []; var len = _menu.length; for(var i = 0; i <

dom4j递归解析XML字符串所有子节点

1 /** 2 * dom4j递归解析所有子节点 3 * 4 * @param childElements 5 * @param mapEle 6 * @return 7 */ 8 public Map<String, Object> getElementsToString(String print) { 9 //解析返回的xml字符串,生成document对象 10 Document document = null; 11 Map<String,Object> mapEle =

Oracle树查询(查询所有子节点,父节点等等)_转载

Oracle树查询(查询所有子节点,父节点等等) 转载 2016年01月14日 10:11:55 Oracle树查询的最重要的就是select...start with... connect by ...prior 语法了.依托于该语法,我们可以将一个表形结构的中以树的顺序列出来.在下面列述了Oracle中树型查询的常用查询方式以及经常使用的与树查询相关的Oracle特性函数等,在这里只涉及到一张表中的树查询方式而不涉及多表中的关联等. 以我做过的一个项目中的表为例,表结构如下: Sql代码 1

easyui Tree模拟级联勾选cascadeCheck,节点选择,父节点自动选中,节点取消,父节点自动取消选择,节点选择,所有子节点全部选择,节点取消,所有子节点全部取消勾选

最近项目中用到easyui tree,发现tree控件的cascadeCheck有些坑,不像miniui 的tree控件,级联勾选符合业务需求,所以就自己重新改写了onCheck事件,符合业务需求.网上百度了很多资料,都没有完全符合自己业务场景的,所以就自己动手写咯. 先说一下自己的业务需求: 1.选中节点,上级以及所有直系上级节点自动选中,所有下级子孙节点全部自动选中: 2.取消选择节点,如果兄弟节点都未选择,则上级以及所有直系上级节点自动取消选择,所有下级子孙节点全部取消选中. 这里说一下c

Java遍历Map集合方法

package testMap; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; /**  * 循环遍历Map集合  *   * @author Administrator  *   */ pub

cocos2dx对所有子节点设置透明度

看到cocos2dx2.2.5发布了,修复了输入框的bug,于是我们的项目也升级到了2.2.5, 升级过程还是比较顺利,没想到后来发现设置透明度无效了. 经过调试发现要调用一下setCascadeOpacityEnabled(true),结果还是没有效果, 又继续调试,原来noe没父节点不会更新自己的透明度,于是改为如下: void CCNode::setOpacity(GLubyte opacity) { m_displayedOpacity = m_realOpacity = opacity

java遍历泛型的方法

一.List遍历 Java中List遍历有三种方法来遍历泛型,主要为: 1.for循环遍历 2.iterator遍历 3.foreach遍历 package com.gmail.lsgjzhuwei; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.junit.Test; public class test { //第一种方法:for循环遍历 @Test public