递归概述:以编程的角度来看,递归指的是方法定义中调用方法本身的现象。
递归解决问题的思路:
把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解;
递归策略只需少量的程序就可以描述出解题过程所需要的多次重复计算。
递归解决问题要找到两个内容:
①递归出口:否则会出现内存溢出;
②递归规则:与原问题相似的规模较小的问题。
问题:获取桌面文件夹中所有文件名。
1 import java.io.File; 2 public class wenJian { 3 public static void main(String[] args) { 4 //根据给定的路径创建一个File对象,()为文件夹路径 5 File srcFile=new File("C:\\Users\\Chen\\Desktop"); 6 //调用方法 7 getAllFilePath(srcFile); 8 } 9 10 //定义一个方法,用于获取给定目录下的所有内容,参数为第1步创建的File对象 11 public static void getAllFilePath(File srcFile) { 12 //获取给定的File目录下所有的文件或者目录的File数组 13 File[] fileArry=srcFile.listFiles(); 14 //遍历该File数组,得到每一个File对象 15 if(fileArry!=null) { 16 //遍历该File数组,得到每一个File对象 17 for(File file:fileArry) { 18 //判断File对象是否是目录 19 if(file.isDirectory()) { 20 //是:递归调用 21 getAllFilePath(file); 22 }else { 23 //不是:获取绝对路径输出在控制台 24 //System.out.println(file.getAbsolutePath()); 25 //获取目录或文件名(这里获取文件名) 26 System.out.println(file.getName()); 27 } 28 } 29 } 30 } 31 }