列出指定目录下文件或者文件夹,包含子目录中的内容,即是列出指定目录下所有内容
因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可,在列出过程中出现的还是目录的话,还可以再次调用本功能,即函数自身调用自身,这种表现形式,或者编程手法,称为递归。
clipboard.png递归注意事项:
1.限定条件
2.要注意递归的次数,尽量避免内存溢出(java.lang.StackOverflowError)
import java.io.File;
// 递归
public class Recursion {
public static void main(String[] args) {
File dir = new File("E:\\Book");
showDir(dir);
}
public static void showDir(File dir) {
System.out.println(dir);
File[] files = dir.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
showDir(files[i]);
} else {
System.out.println(files[i]);
}
}
}
}
clipboard.png
// 递归
public class Recursion2 {
public static void main(String[] args) {
System.out.println(getSum(6));
}
public static int getSum(int n) {
if (n == 1) {
// return n;
return 1;
}
return n + getSum(n - 1);
}
}
clipboard.png
网友评论