遞歸概述:以編程的角度來看,遞歸指的是方法定義中調用方法本身的現象。
遞歸解決問題的思路:
把一個復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解;
遞歸策略只需少量的程序就可以描述出解題過程所需要的多次重復計算。
遞歸解決問題要找到兩個內容:
①遞歸出口:否則會出現內存溢出;
②遞歸規則:與原問題相似的規模較小的問題。
問題:獲取桌面文件夾中所有文件名。
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 }