• java 遍历所有子节点


    /**
     * 
     */
    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;
    	 }
    
         
    
    	}
    	
    
    	
    
  • 相关阅读:
    浅谈面向对象语言中对象的使用
    淘宝店铺搜索工具(提升淘宝店铺排名人气)
    JavaScript学习总结二:js闭包(Closure)概念
    JavaScript学习总结一:js常见问题
    GC原理解析(c#)
    VS2010中的测试(2)——单元测试
    VS2010中的测试(3)——数据驱动单元测试
    领域驱动设计实践(二)
    俞敏洪在清华励志演讲
    Ioc最佳实践
  • 原文地址:https://www.cnblogs.com/dingding0505/p/3715965.html
Copyright © 2020-2023  润新知