1700467827
}
1700467828
1700467829
//遍历所有的树枝节点,打印出信息
1700467830
1700467831
private static void getAllSubordinateInfo(ArrayList subordinateList){
1700467832
1700467833
int length=subordinateList.size();
1700467834
1700467835
//定义一个ArrayList长度,不要在for循环中每次计算
1700467836
1700467837
for(int m=0;m<length;m++){
1700467838
1700467839
Object s=subordinateList.get(m);
1700467840
1700467841
if(s instanceof Leaf){//是个叶子节点,也就是员工
1700467842
1700467843
ILeaf employee=(ILeaf)s;
1700467844
1700467845
System.out.println(((Leaf)s).getInfo());
1700467846
1700467847
}else{
1700467848
1700467849
IBranch branch=(IBranch)s;
1700467850
1700467851
System.out.println(branch.getInfo());
1700467852
1700467853
//再递归调用
1700467854
1700467855
getAllSubordinateInfo(branch.getSubordinateInfo());
1700467856
1700467857
}
1700467858
1700467859
}
1700467860
1700467861
}
1700467862
1700467863
}
1700467864
1700467865
这个程序比较长,如果在我们的项目中有这样的程序,肯定是要被拉出来做典型的,你写一大坨的程序给谁呀,以后还要维护,程序要短小精悍!幸运的是,我们这是作为案例来讲解,而且就是指出这样组装这棵树是有问题的,等会我们深入讲解,先看运行结果:
1700467866
1700467867
名称:王大麻子 职位:总经理 薪水:100000
1700467868
1700467869
名称:刘大瘸子 职位:研发部门经理 薪水:10000
1700467870
1700467871
名称:杨三乜斜 职位:开发一组组长 薪水:5000
1700467872
1700467873
名称:a 职位:开发人员 薪水:2000
1700467874
1700467875
名称:b 职位:开发人员 薪水:2000
1700467876
[
上一页 ]
[ :1.700467827e+09 ]
[
下一页 ]