请选择 进入手机版 | 继续访问电脑版

Java基础教程——递归的实现

[复制链接]
发表于 2019-1-1 12:52:47 |显示全部楼层

什么是递归呢?

        
            程序调用自身的编程技巧称为递归( recursion)
  

递归的实际例子

    数据表设计:
   
       ID  NAME  PID

    我们现在就需要根据这个表格来编写一个递归方法 实现一个树形菜单的创建。
  
    第一步:实现我们这个表的实体类。
    public class  Tree{
      private string id;
      private string name;
      private string pid;
      
     //以下省略get和set方法。
    }
   
   2.找到所有的父节点
   public List<TreeEntity> findAllParents(){
           
String sql = "select * from test where pid is null or pid='' ";
         
   }

    3根据父节点找到所有的孩子

   
第二种实现方式:
    users表:
    orgs表:
    company表:
   
   
    public List<Map<String, Object>> getForTree(List<Map> corgList,String pid)        {
                        
                        List<Map<String, Object>> treeList  =new ArrayList<Map<String, Object>>();
                        Map<String, Object> map = null;
                        for(Map<?, ?>  corglist: corgList) {
                                String id = corglist.get("oid").toString();
                                String text = corglist.get("name").toString();
                                String type = corglist.get("type").toString();
                                String ssdsid = corglist.get("SSDS")==null?"sgs":corglist.get("ssds").toString();
                                String sjbmid = corglist.get("pid").toString();
                                if(sjbmid.equals(pid)){
                                        map = new HashMap<String, Object>();  
                                        map.put("text",text);
                                        map.put("children",getForTree(corgList,id));
                                        map.put("TYPE",type);
                                        map.put("OID",id);
                                        map.put("SSDSID",ssdsid);
                                        //map.put("state","closed");
                                        treeList.add(map);
                                }
                                /*if (map!=null){
                                       
                                }*/
                                
                    }        
                        
                        return treeList;
                }
   
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|沙漏笔记

GMT+8, 2019-12-15 16:17 , Processed in 0.120469 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Copyright © 2015-2018 xuejava网 / 鲁ICP备17054568号-1
回顶部