递归,主要分为两部分,——递归头,(递归的结束条件),地柜体递归的体(自己电影调用自己的过程)
在不满足条件的情况下,递归会不停的、傻瓜式的地调用身上自身的方法来寻找,当满足得到的结果满足调剂的雕件条件的时候,在以从下往上的一个逻辑把结果传回来
递归算法通常都显得比较简洁,但是效率比较低,如归如果递归的次数太多的话就会造成栈溢出,所以一般不怎么推荐使用
当没有递归头(结束调剂条件)的时候,递归就会进入死循环,从而不能正常结束
示例代码:查找指定路径下的文件夹和文件
public class RecursionClass { public static void main(String[] args) { RecursionClass rc=new RecursionClass(); File file=new File("E://kk");//文件夹路径 rc.recursion(file);//递归方法
} public void recursion(File file){ //判断是否是文件夹,这个方法就是递归头 if(file.isDirectory()){ //如果是文件夹,把名字输出到控制台 System.out.println("文件夹——"+file); //得到文件夹中的东西,放到数组 File[] files = file.listFiles(); //遍历数组 for (File f:files) { //调用自己的方法 recursion(f); } }else{ //如果是文件,打印文件名 System.out.println("文件——"+file); } } }
如果这篇文档对你有所帮助,麻烦点个赞哦