JAVA-I/O流-递归查找当前目录下的所有文件和文件夹

JAVA-I/O流-递归查找当前目录下的所有文件和文件夹


在一个方法的内部调用这个方法叫做递归。递归分为直接递归和间接递归,前面说的就是直接递归,而间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
递归中最重要的是递归的出口,如果一个递归没有出口就会发生阻塞导致栈内存溢出,而且递归的效率并不高,应当避免递归次数过多。

  • 基准情形(base case):必须总要有某些基准的情形,他们不用递归就能求解。
  • 不断推进(making progress):对于那些要递归求解的情形,递归调用必须能够朝着一个基准情形推进。

假设有一个printDigit()方法只可以每次输出一个个位数整数,现在如何输出整数74263

// 单个输出
// 打印输出整数 74263
public static void printDigit(int num){
	System.out.print(num);
}
public static void printOut(int num){		
	if (num >= 10) {
		printOut(num / 10);
	}
	printDigit(num % 10);
}

斐波那契数列

对于{1,1,2,3,5,8···(n-2)+(n-3),(n-1)+(n-2)}这样的数列,我们叫斐波那契数列

public static int getFibonacciSequence(int num){
	if (num == 1 | num == 2) {
		return 1;
	} 
	return getFibonacciSequence(num-1) +                    getFibonacciSequence(num - 2);
	}

递归寻找所有的文件目录

public static void getAllFile(File file) {
	File[] fileList = file.listFiles();
	for (File f : fileList) {
		if (f.isDirectory()) {
			getAllFile(f);
		}
		else {
			System.out.println(f.getName());
		}
	}	
}
posted @ 2020-04-23 17:24  于大宝执剑江湖  阅读(585)  评论(0)    收藏  举报