• 递归


    递归

      概述
    •   递归:指的是当前方法调用自己的一种现象
    •        递归的分类

        • 递归分为两类:直接递归和间接递归
        • 直接递归: 称为方法自身调用自己的情况
        • 间接递归: 可以归结为: 方法A调用了方法B,方法B调用了方法C,方法C调用了方法A
    • 注意事项:

      • 递归一定要有边界条件(条件限定) , 保证递归能够停下来,否则会发生栈内存溢出.
      • 在递归放纵虽然有限定条件,但是递归的次数也不能太多,否则也会发生栈内存溢出现象
      • 构造方法禁止递归

    使用递归打印多级目录

    public static void main(String[] args) {
            // 找到Hello文件的路径
            File file = new File("C:\Users\admin\Desktop\Hello");
            //调用getAllFiles()
            getAllFiles(file);
        }
    
        /*
            定义一个方法,参数传递File类型的目录
            方法中要对目录进行遍历
         */
        public static void getAllFiles(File file) {
            // 表明file此时是一个目录
            System.out.println(file);
            //首先先获取到它直接子目录和直接子文件
            File[] files = file.listFiles();
            // 遍历files目录
            for (File f : files) {
                // 判断如果得到的f是一个目录,需要再次遍历
                if (f.isDirectory()) {
                    // 表明f是一个目录,则继续遍历这个目录
                    //getAllFiles方法就是获取所有的文件,参数传递的刚好是目录。所以直接调用getAllFiles:递归(自己调用自己)
                    getAllFiles(f);
                } else {
                    // 此时f不是一个目录,肯定是一个文件
                    System.out.println(f);
                }
            }
        }

    文件过滤器优化

    java.io.FileFilter是一个接口,是File的过滤器,该接口的对象可以传递给File类的listFiles(File Filter) 作为参数,接口中只有有个方法:

    boolean accept(File pathname) : 测试pathname是否应该包含在当前的File目录中,

    如果符合,返回true.

  • 相关阅读:
    判断浏览器是pc端和移动
    高德谷歌地图切换成英文地图
    小程序修改默认的单选框复选框样式
    推荐系统| ① Movies概述
    推荐系统| ② 离线推荐&基于隐语义模型的协同过滤推荐
    数据结构与算法| 复杂度分析
    Flink| 运行架构
    机器学习| 高数-基础
    Flink| 概述| 配置安装
    推荐系统| 概述
  • 原文地址:https://www.cnblogs.com/wazesx2580/p/14135171.html
Copyright © 2020-2023  润新知