递归

递归

注意:

  • 递归不能没有结束条件,否则就会在栈内存中一直调用自己,这个方法就会一直压入栈空间出现栈内存异常溢出的异常
  • 递归的次数也不能太多,否则也会出现栈内存溢出
  • 构造方法禁止使用递归,编译报错,构造方法是创建对象的,一直递归回导致内存中有无数对象

下面是递归计算累加的例子:

递归遍历获取文件

package cn.zhuobo.day13.recurison;

import java.io.File;

public class Demo01Recurison {
    public static void main(String[] args) {
        File file = new File("/home/zhuobo/Desktop/a");
        getAllFile(file);
    }

    public static void getAllFile(File dir) {
        System.out.println(dir);// 打印要遍历的问价夹
        File[] files = dir.listFiles();
        for (File file : files) {
            if(file.isDirectory()) {// 如果十个目录,那么就递归接着遍历
                getAllFile(file);
            }
            else {
                // 获取其中以txt结尾的文件
                //System.out.println(file);
                String name = file.getName();
//                String name = file.getPath();
//                String name = file.toString();
                if(name.endsWith(".txt")){
                    System.out.println(file);
                }
            }
        }
    }
}

a目录的文件:

运行结果

/home/zhuobo/Desktop/a/c/c.txt
/home/zhuobo/Desktop/a/b/b.txt
/home/zhuobo/Desktop/a/a.txt
原文地址:https://www.cnblogs.com/zhuobo/p/10651066.html