精华内容
下载资源
问答
  • java递归简单实例

    千次阅读 2016-09-21 09:33:56
    java递归简单实例

    1.自己的第一篇博客,想把自己的觉得有用的记录下来,也可以锻炼自己的表达能力。内容谈不上丰富,如果写的不好,请大家多多包涵。

    2.废话不多说,就是干,先准备下脚本

    drop TABLE IF EXISTS category;
    CREATE TABLE `category` (
      `id` int(11) NOT NULL,
      `pid` int(11) DEFAULT NULL,
      `name` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    INSERT INTO category VALUES (1,0,'手机');
    INSERT INTO category VALUES (2,0,'电脑');
    INSERT INTO category VALUES (3,1,'苹果手机');
    INSERT INTO category VALUES (4,1,'三星手机');
    INSERT INTO category VALUES (5,2,'笔记本');
    INSERT INTO category VALUES (6,2,'台式机');
    INSERT INTO category VALUES (7,3,'iphone6');
    INSERT INTO category VALUES (8,3,'iphone7');

    SELECT * FROM category;

    ----2.1 新建一个品类表,插入几条记录,id不能重复,每条数据都是id,pid这种形式


    3.新建一个Java项目

    ----3.1 引入mysql-connector-java-5.1.6

    ----3.2 新建实体category.java

    public class Category {
        private Integer id;
        private Integer pid;
        private String name;
        private List<Category> childList;// 子集合

        public Integer getId() {
            return id;
        }

        public void setId(Integer id) {
            this.id = id;
        }

        public Integer getPid() {
            return pid;
        }

        public void setPid(Integer pid) {
            this.pid = pid;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public List<Category> getChildList() {
            return childList;
        }

        public void setChildList(List<Category> childList) {
            this.childList = childList;
        }

        @Override
        public String toString(){
            return "id:" + id +",pid:" + pid +",name:" + name +",childList:" + childList+"";
        }


    -----3.3测试类test.java
    public class Test {
        public static void main(String[] args) {
            Connection conn = null;
            Statement stmt = null;
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
                stmt = conn.createStatement();
                String sql = "select id,pid,name from category";
                ResultSet rs = stmt.executeQuery(sql);
                List<Category> list = new ArrayList<Category>();
                while (rs.next()) {
                    Category cate = new Category();
                    cate.setId(rs.getInt("id"));
                    cate.setPid(rs.getInt("pid"));
                    cate.setName(rs.getString("name"));
                    list.add(cate);
                    
                }
                //递归方法
                list = dgCategoryList(list,1);//查询手机下面的
                System.out.println(list);
                rs.close();
                stmt.close();
                conn.close();

            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        /**
         * 递归方法(品类递归)
         *
         * @param categoryList
         * @param parentId
         * @return
         */
        private static List<Category> dgCategoryList(List<Category> categoryList, Integer parentId)
        {
            List<Category> childList = new ArrayList<Category>();
            for (Category c : categoryList)
            {
                if (null != c && null != c.getId() && null != c.getPid())
                {
                    int id = c.getId();
                    int pid = c.getPid();
                    if (parentId==pid)
                    {
                        List<Category> childs = dgCategoryList(categoryList, id);
                        c.setChildList(childs);
                        childList.add(c);
                    }
                }
            }
            return childList;
        }
    }

    -----3.4控制台打印




    结果:手机下面有苹果手机和三星手机,苹果手机有iphone6,iphone7,三星手机下面没有。

    总结:数据库里的记录是id和父pid的数据,而业务需要是把某一个品类所有的子品类及子品类下面包含的。这个时候在内存中做递归





    展开全文
  • java递归简单例子练习

    千次阅读 2016-12-12 15:23:34
    //递归简单的小例子 练习: //计算1+2+。。。+1000的和 public class d {    int sum=0;  int i=1;  public void sum(){  sum+=i;  i++;  if(i  sum();//递归就是调用自身  }

    //递归简单的小例子

    练习:

    //计算1+2+。。。+1000的和

    public class d {
        
        int sum=0;
        int i=1;
        public void sum(){
            sum+=i;
            i++;
            if(i<=1000){
                sum();//递归就是调用自身
            }
        }
    public static void main(String[] args) {
        d s = new d();
        s.sum();
        System.out.println("计算结果是"+s.sum);
    }
    }

    //===========================

    一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。

    下面我们用递归实现斐波那契数列

    :0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)

    求第n个数

    //递归简单的小例子
    public class d {
    public static int sum(int n){
        if(n==0){
            return 0;
        }
        if(n==1 ||n==2){
            return 1;
        }
        return sum(n-1)+sum(n-2);
    }
    public static void main(String[] args) {
    //    d d1 = new d();
        System.out.println(d.sum(8)+"他的值");//因为他的方法是静态的,可以直接调用
        System.out.println("ddd");
    }
    }

    //======================

    练习:

    递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推关键要抓住的是: 
    (1)递归出口 
    (2)地推逐步向出口逼近
    得解。

    求5的阶乘

    add,subtract,multiply与+,-,*本质上是没有区别的.
    public class d {
    public static int Mutiply(int n){
        if(n==1||n==0){
            return n;
        }
        return n*Mutiply(n-1);
        
    }
    public static void main(String[] args) {
    //    d d1 = new d();
        System.out.println(d.Mutiply(5)+"他的值");//因为他的方法是静态的,可以直接调用
        System.out.println("ddd");
    }
    }

    //===============



    展开全文
  • java递归算法实例分析

    2020-08-28 13:54:05
    主要介绍了java递归算法实例分析,具有一定借鉴价值,需要的朋友可以参考下。
  • java递归例子

    2014-01-10 21:29:42
    java递归例子,供初学者学习使用。九九递归
  • Java实现递归简单实例

    2013-10-07 17:14:18
    个人理解的编程语言的递归有两个核心, 一个...写一个最简单例子 [code="java"]public static List recur(Listparam,int a){ param.add(a); if(a>0){ return recur...
    个人理解的编程语言的递归有两个核心, 一个是入口, 一个是出口。
    
    入口既是这个函数本身, 出口则是满足一定条件时让循环结束。

    写一个最简单的例子
    public static List<Integer> recur(List<Integer>param,int a){


    param.add(a);



    if(a>0){
    return recur(param,a-1);
    }
    else{
    return param;
    }


    }


    在main函数里面创建一个list, 调用该方法。
    例如 recur(list, 5)
    最后的结果就是[5,4,3,2,1,0]
    展开全文
  • java递归简单案例

    2016-11-04 11:42:09
    java递归案例, 先假设有地区这么一个类,地区呢 有上级地区, 下级的所有地区, 有地区编码, 地区名称 public class Area{ private List&lt;Area&gt; childs; private Area parent; ...

    java递归案例, 先假设有地区这么一个类,地区呢 有上级地区, 下级的所有地区, 有地区编码, 地区名称

    public class Area{
    		
    		private List<Area> childs;
    		
    		private Area parent;
    		
    		private String code;
    		private String name;
    		public List<Area> getChilds() {
    			return childs;
    		}
    		public void setChilds(List<Area> childs) {
    			this.childs = childs;
    		}
    		public Area getParent() {
    			return parent;
    		}
    		public void setParent(Area parent) {
    			this.parent = parent;
    		}
    		public String getCode() {
    			return code;
    		}
    		public void setCode(String code) {
    			this.code = code;
    		}
    		public String getName() {
    			return name;
    		}
    		public void setName(String name) {
    			this.name = name;
    		}
    	}

    下面对地区进行遍历,递归找出最末级的区域

    public void treeArea(Area area){
    		Stack<Area> stack = new Stack<Area>();
    		stack.push(area);
    		while(!stack.isEmpty()){
    			Area pop = stack.pop();
    			// 看看还有没有下级区域
    			if(CollectionUtil.isNotNil(pop.getChilds())){
    				stack.addAll(pop.getChilds());
    			}else{
    				//如果没有下级区域,表示是最末级的
    				System.out.println(area.getCode());
    			}
    		}
    	}

    下面通过一个地区查找它最上级的地区

    public Area findParent(Area area){
    		if(area == null || area.getParent() == null){
    			return null;
    		}
    		Area parent = area.getParent();
    		while(parent.getParent() != null){
    			parent = parent.getParent();
    		}
    		return parent;
    	}

     

    展开全文
  • java 递归实例

    2017-12-13 21:52:11
    java递归调用的简单实例
  • 递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直接求解,也就是说到了递推的出口,这样原问题就有递推得解。在做递归算法的时候,一定要...
  • Java递归简单实现

    2019-12-04 15:45:07
    递归` public static void main(String[] args) { int sum = getSum(5); System.out.println(sum); } public static int getSum(int n){ if (n==1){ return 1; ...
  • Java递归实例

    2016-04-21 03:01:43
    Java递归实例
  • 主要介绍了Java递归算法,通过两则示例分析了Java递归算法实现阶乘与求和的具体操作技巧,需要的朋友可以参考下
  • Java递归算法实例

    千次阅读 2016-03-10 22:29:46
    递归(recursion):程序调用自身的编程技巧。递归满足2个条件: 有反复执行的过程(调用自身) 有跳出反复执行过程的条件(递归出口)
  • JAVA递归例子

    2014-10-24 17:51:38
    JAVA递归例子
  • 在本篇文章里小编给大家整理了关于java递归算法的实例内容,以及相关知识点总结,需要的朋友们可以学习下。
  • 主要介绍了Java递归基础与递归的宏观语意,结合实例形式分析了java递归的相关原理、操作技巧与注意事项,需要的朋友可以参考下
  • 文章目录递归 递归 递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象 递归解决问题思路:把一个复杂的问题层层转化为一个与愿问题相似的规模较小的问题来求解,递归策略只需要少量的程序就可以...
  • 搜索热词本文实例讲述了Java递归算法。分享给大家供大家参考,具体如下:1.实现1到100的和,用递归实现public class RecursionTest {public static void main(String[] args) {System.out.println(diGui(100));// ...
  • Java递归读取文件例子 Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */
  • //创建一个包 import java.math.BigInteger;//导入类 import java.util.ArrayList;... public class TextFactorial {//操作计算阶乘的类 public static int simpleCircle(int num){//简单的循环计算的
  • java递归实例
  • Java递归

    2021-01-11 22:41:08
    无论在哪里相信大家都听说过递归,我也是个初学者,一开始我也是看不懂的,后来才慢慢看懂,现在我就来记录一下我所了解的Java递归是什么。 递归:程序调用自身的编程技巧称为递归(recursion),它做为一种算法在...
  • Java递归 遍历目录的小例子,需要的朋友可以参考一下
  • 主要介绍了Java递归原理,实例分析了java递归的原理与实现方法,以及使用过程中的相关技巧,需要的朋友可以参考下
  • 【递归】意为方法自己...【Java递归查询动态菜单】代码如下:public List&lt;Menu&gt; getMenus(Integer pid) { List&lt;Menu&gt; menus = menuMapper.getMenusByPid(pid); for (Menu m : menus...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,971
精华内容 49,588
关键字:

java递归简单例子

java 订阅