java递归遍历某个菜单下的菜单树

Python014

java递归遍历某个菜单下的菜单树,第1张

不太清楚你这个Menu是哪来的类,不过如果上文你的程序能执行的话,说明menu.getChilds()是个集合,应该带有size()的函数。你可以取出menu.getChilds()的大小,再从头到尾遍历它。

int count=menu.getChilds().size()

for(int i=0i<counti++)

{

showMenu( ((Menu)menu.getChilds().get(i)) , 0 )

//我估计这些children是个list,可以顺序遍历;但也有

//部分可能是set,那样就得用iterator了。

}

无需JAVA递归取!

从设计角度看,表结构设计已经有问题了!

即使是树状结构,为何表结构没有体现?这也构成了为何楼主需要想办法来应对非树状结构数据的树状显示问题。

先进一步来说,表加一个grade字段,来表明当前记录处于第几级。那么直接一个SQL就可以取出来:

select lpad(' ',a.grade,'-')||a.name from myList a

这样就可以按楼主需要的结构取出数据;

但还存在一个问题,就是顺序问题,这样取出的数据是无序的!

那么我们再进一步看,我在做这种数据结构的表设计时,往往会给每个结点增加两个字段,left/right,分别代表其在树中的左右值。

这样就可以在上面SQL后增加order by a.left以保证取出数据的顺序。