递归
递归,就是在当前方法内调用自己的这种现象,也可以调用别的方法。
实例:
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"); }