拜托 你要实现递归出来是吗  
那么你就要再把数据放进List的时候 就递归的方式放进去 知道吗
而不是任意放 再想按照递归 拿出来 明白吗

解决方案 »

  1.   

    能不用递归时尽量不用,不知这个对你有否参考价值:
    http://tech.ccidnet.com/pub/article/c1077_a173747_p1.html
      

  2.   

    public boolean has_child(String ls_upindcode,List list) throws Exception {
      Map colMap; 
      int is_state=0;  for (int i=0; i< list.size(); i++){
     colMap = (Map)list.get(i);
     String ls_upcode;
     ls_upcode = colMap.get("up_ind_code").toString();
     if (ls_upcode.equals(ls_upindcode)){
    is_state++;
    break;
     }  }
     if (is_state>0){
    return true;
     } else{
       return false;}
    }
    public  List gettreeresouce(List list,String ls_upindcode)
    {
    Map colMap;
    String ls_parent;
    List re_list = new ArrayList();
    for (int i=0; i< list.size(); i++){
    colMap = (Map)list.get(i);
    ls_parent = colMap.get("up_ind_code").toString();
    if (ls_parent.equals(ls_upindcode))
     {
    re_list.add(colMap);
    }
    }
    return re_list;
                
    }
    public void buildTree(List list,javax.servlet.jsp.JspWriter out,String ls_upindcode,int level) throws Exception {                Map colMap;
        String ls_oldname;
                String ls_indexbodyid;
        String ls_upcode;
    String ls_oldcode;
                    List re_list = new ArrayList();
                   level++;
                    
       re_list=gettreeresouce(list,ls_upindcode);
       for (int i=0; i< re_list.size(); i++){
      out.println("<div>");
      colMap = (Map)re_list.get(i);
          ls_upcode=colMap.get("up_ind_code").toString();
      ls_oldname=colMap.get("old_name").toString();
      ls_indexbodyid=colMap.get("index_body_id").toString();
      ls_oldcode = colMap.get("old_code").toString();
        if(has_child(ls_oldcode,list)) {
         out.print("<img alt=\"展开\" style=\"cursor:hand;\" onclick=\"myClick('"+ls_oldcode+"');\" id=\"img"+ls_oldcode+"\" src=\"plus.gif\"> <img id=\"im"+ls_oldcode+"\" src=\"closedfold.gif\"> ");
                     out.print("<span onclick=\"myClick1('"+ls_oldcode+"');\" style=\"cursor:default;\" id=\"span"+ls_oldcode+"\">"+ls_oldname+" id="+ls_oldcode+"</span>");
                     out.println("<div style=\"display:none;\" id=\"div"+ls_oldcode+"\">");
       
          buildTree(list,out,ls_oldcode,level);//递归调用
      out.println("</div>");
      
      } else
          out.print("<img src=\"minus.gif\"> <img src=\"openfold.gif\"> <span onclick=\"myClick1('"+ls_oldcode+"');\" style=\"cursor:default;\" id=\"span"+ls_oldcode+"\">"+ls_oldname+" id="+ls_oldname+"</span>");
                        out.println("</div>");
     }
     
    }
      

  3.   

    没人解决呀,放在ARRAYLIST的结果集效率肯定比直接用SQL快很很多!
    谢谢楼上各位建议。