首页 > 其他分享 >递归的用法

递归的用法

时间:2023-08-11 14:13:16浏览次数:42  
标签:文件 递归 modelList 用法 文件夹 集合 方法

递归主要有两难:

1.判断递归方法的执行主体,具体从入参来看:

 例如第一个递归方法入参是文件夹,确保了是可以保存文件。那么执行的时候就不需要判断入参是否是文件夹;第二个递归方法的入参是文件,不能确定是否是文件夹,需要第一步进行判断。

但是两种方法都实现了查找文件夹下的文件的功能

 

2.判断在什么地方进行递归。一般有递归关系的时候进行递归。而且假设递归方法被执行,深入看看递归的第一步,即方法的第一步,可否满足逻辑。就可以大致知道递归自调用是否合理。

如上图第二个add文件列表下的文件add(modleList)方法的自调用,是合理的,因为找到文件夹下的子目录文件列表,可以继续再次子调用,判断子目录是否有文件夹,符合递归方法的第一步。

 

3.保证一个递归方法是有结束的。结束代表完整的方法,比如一个方法有两部分逻辑,第一部分计算前10个整数,第二部分计算第11个到第12个整数。如果第一部分递归,别忘了完整的结束,还不能缺少第二部分的计算。

还是以上面的2的例子为例,如果找到了当前文件中的文件夹下的子文件集合,那么对子文件集合递归,可以找到子文件的子文件集合目录。那么为了完整的结束整个找到文件的子文件集合,还需要把子文件集合添加到modelList中,也就是

modelList+childList(modelLIst)+递归(chidList(childList(modelList)))才是完整的。

 

只要按照上面的逻辑,基本递归算是入门了。

标签:文件,递归,modelList,用法,文件夹,集合,方法
From: https://www.cnblogs.com/gzhich2019/p/17622820.html

相关文章

  • max-element的min-element的基本用法
    转载自https://blog.csdn.net/qq_37978559/article/details/109782755?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169173063816800197041324%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=169173063816800197041324&biz......
  • 【Fegin技术专题】「原生态」打开Fegin之RPC技术的开端,你会使用原生态的Fegin吗?(高级
    推荐超值课程:点击获取对于Httpclient请求机制进行设置操作处理。@Body注解申明一个请求体模板,模板中可以带有参数,与方法中@Param注解申明的参数相匹配,使用方法如下:interfaceLoginClient{voidlogin(Stringuser,Stringpassword);}...client.login("denominato......
  • WEB自动化-Allure报告-Allure安装和简单用法
    WEB自动化测试可以借助Allure生成美观的测试报告。1、安装工具及配置环境变量1.安装JDK1.8才可运行allure,直接百度,一大堆2.下载Allure的安装包(版本号:2.13.5)https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/3.解压Allure压缩包......
  • SQL JOIN的用法,你会了吗?
    SQLJOIN是在关系型数据库中常用的操作,用于将两个或多个表中的数据合并起来,以满足查询需求。本文将介绍SQLJOIN的基本概念、不同类型的JOIN,以及使用示例。SQLJOIN的概念在关系型数据库中,数据通常分布在多个表中,并且这些表之间存在关联。SQLJOIN允许我们基于关联条件将这些......
  • 递归算法练习C++
    1、逆波兰表达式(1)题目描述逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2+3的逆波兰表示法为+23。逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2+3)*4的逆波兰表示法为*+234。本题求解逆波兰表达式的值,其中运算符包括......
  • c++枚举详细介绍以及具体用法
    C++中的枚举(Enumeration)是一种用于定义命名常量集合的数据类型。枚举可以提高代码的可读性和可维护性,让您可以使用有意义的名称来表示特定的取值,而不必使用原始的数字常量。枚举的基本语法:enumEnumName{Value1,Value2,//...};EnumName是枚举类型的名称......
  • LiveData的用法
    一.实时数据LiveData在上一节中,我们学习了ViewModel,了解到ViewModel的主要作用是存放页面所需要的各种数据。我们在示例代码中定义了接口,当数据发生变化的时候,采用接口的方式实现对页面的通知。但是这种方式是有缺陷的,当要存储的数据非常多的时候,就要定义大量的接口,代码会显......
  • 代码随想录算法训练营第十四天| 理论基础 递归遍历 迭代遍历
     理论基础    卡哥建议:需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义   文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html   补充的知识点:   名词的概念看卡哥文章。二叉树......
  • 【Nginx用法】nginx location正则表达式写法,详解Nginx location 匹配规则(很详细哦)
    本文目录一、常用规则 二、实际使用建议三、Flag标志位四、If判断指令五、全局变量六、常用正则七、Rewrite规则八、Rewrite实例8.1实例一8.2实例二九、项目实例9.1项目一9.2项目实战作为一名Java开发人员,有些东西不经常使用,很容易忘记,好比nginx配置内容,以下内容是记录了公司......
  • Go语言中省略号用法大全
    Go语言中的ellipsis(即三个连续的点...)确实有几种用途。下面是这些用途的总结:定义变参函数(VariadicFunctions):Ellipsis用于函数定义时,表明该函数可以接受任意数量的参数。这些参数会被当作一个slice来处理。例如:funcsum(nums...int)int{total:=0for_,......