递归

时间:2019-10-24
本文章向大家介绍递归,主要包括递归使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

递归

  递归,就是在当前方法内调用自己的这种现象,也可以调用别的方法。

  实例:

    1.斐波那契数列的兔子  

1 public static int rabbit(int n){
2         if(n==1){
3             return 1;
4         }
5         if(n==2){
6             return 1;
7         }
8         return rabbit(n-1)+rabbit(n-2);
9     }

    2. 遍历一个目录下所有文件夹和文件

      先定义一个类继承FilenameFilter过滤器接口:MyFilter.java 来判断是否有文件夹和文件

      然后获取该目录下所有文件和文件夹的File数组

      开始遍历,如果该file是文件夹则继续递归找到下一级的所有文件和文件夹,如果是文件直接打印输出

    部分代码展示:

public static void get(File path){
        //获取该目录下所有文件和文件夹的File数组
        File[] files=path.listFiles(new MyNameFilter());
        //遍历
        for(File file:files){
            //如果该file是文件夹则继续递归找到下一级的所有文件和文件夹
            if(file.isDirectory()){
                get(file);
            }else{
                //如果是文件直接打印输出
                System.out.println(file);
            }
        }
    }


//MyFilter.java
public boolean accept(File pathname) {
        //long length=pathname.length();
        if(pathname.isDirectory()){
            return true;
        }
        //return pathname.length()>200*1024;
        return pathname.getName().toLowerCase().endsWith(".txt");
    }

    

原文地址:https://www.cnblogs.com/zhai113/p/11718922.html