u010070427 2008-12-20 09:37
浏览 397
已采纳

求JAVA实现添加无限级分类

如下面的:
无限级添加子目录;
水果
|_夏天的水果
|_苹果
|_黄苹果
|_冬天的水果
|_梨子
衣服
|_夏天的衣服
|_短袖
|_冬天的衣服
|_长袖
这个就是那种新闻管理系统,然后添加分类,分类是可由用户无限自定义添加的,求方案,我现在设计了的表是这样的

id 主键 int
isParent bit 是否为根目录
parentid int 父类ID
listname varchar(50) 栏目名称

希望显示的效果是这样的:
水果
|_夏天的水果
|_苹果
|_黄苹果
|_冬天的水果
|_梨子
衣服
|_夏天的衣服
|_短袖
|_冬天的衣服
|_长袖
如果字段不够,可以添加,谢谢了

public void bind(List list){
Classify classify=null;

for(int i=0;i<lst.size();i++){
classify=(Classify)lst.get(i);
if(classify.getisParent()){//判断目录是否为根目录
list=new ArrayList();
out.println(classify.getListname()+"/n");
list.add(classify.getId());
}else{
for(int j=0;j<alist.size();j++){
if(Integer.parseInt(alist.get(j).toString())==classify.getParentid()){
list=new ArrayList();
list.add(classify.getId());
out.println(classify.getListname());
bind(list);
}
}
}

}
}

这是我自己之前这样想的,本以为用递归可以搞定,没想到好的方法,后来打算用层的意思来,就是,添加一个字段,放层,因为ID都是主键,所以他是唯一的, 父类ID 加上子类的ID作为一个层来做,也暂时不知道怎么实现,求高手解决。
[b]问题补充:[/b]
首先谢谢“墓里活人”这位朋友,我的要求是一次性全部显示出来,而不是单击一下然后展示下一级。
[b]问题补充:[/b]
是一次性读出来
[b]问题补充:[/b]
是采用hibernate来做的
[b]问题补充:[/b]
墓里活人 问题是怎么打印出来
[b]问题补充:[/b]
墓里活人 你的代码跑起来是死循环啊,能给我详细代码不,谢谢了,我的QQ邮箱:83439123@qq.com 谢谢了

  • 写回答

9条回答 默认 最新

  • iteye_19016 2008-12-24 13:26
    关注

    输出死循环
    还是读取死循环

    大概思路就是这样,你自己调试 改改就行了

    如果是输出死循环
    那大概是这句有问题:
    //递归链结束条件

    if( !(list!=null&&list.size()>0) )return;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题