分享好友 最新动态首页 最新动态分类 切换频道
递归与文件操作:从基础到高级应用
2024-12-26 08:40

递归与文件操作:从基础到高级应用

  • 递归:指在当前方法内调用自己的这种现象。
  • 递归的分类:
    • 递归分为两种,直接递归和间接递归。
    • 直接递归称为方法自身调用自己。
    • 间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
  • 注意事项
    • 递归一定要有条件限定,保证递归能够停止下来,否则会发生栈内存溢出。
    • 在递归中虽然有限定条件,但是递归次数不能太多。否则也会发生栈内存溢出。
    • 构造方法,禁止递归
 
 

计算1 ~ n的和

分析:num的累和 = num + (num-1)的累和,所以可以把累和的操作定义成一个方法,递归调用。
实现代码

 

代码执行图解

💡小贴士:递归一定要有条件限定,保证递归能够停止下来,次数不要太多,否则会发生栈内存溢出。

  • 阶乘:所有小于及等于该数的正整数的积。
 

分析:这与累和类似,只不过换成了乘法运算,学员可以自己练习,需要注意阶乘值符合int类型的范围。

 

代码实现

 
 

分析:多级目录的打印,就是当目录的嵌套。遍历之前,无从知道到底有多少级目录,所以我们还是要使用递归实现。
代码实现

 
 

文件搜索

搜索 目录中的 文件。
分析

  1. 目录搜索,无法判断多少级目录,所以使用递归,遍历所有目录。
  2. 遍历目录时,获取的子文件,通过文件名称,判断是否符合条件。

代码实现

 
 

是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 作为参数, 接口中只有一个方法。
:测试pathname是否应该包含在当前File目录中,符合则返回true。
分析

  1. 接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。
  2. 方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。保留规则
    1. 要么是.java文件。
    2. 要么是目录,用于继续遍历。
  3. 通过过滤器的作用,返回的数组元素中,子文件对象都是符合条件的,可以直接打印。

代码实现

 
 

分析是只有一个方法的接口,因此可以用lambda表达式简写。
lambda格式

 

代码实现

最新文章
网站终于被收录了!
作者:陌溪陌溪的学习笔记:http://note.moguit.cn大家好,我是之前一直有小伙伴跑来问我,为啥蘑菇博客上线了这么久,百度出来只有首页?百度收录在聊这个问题之前,我们先谈谈什么是 SEO。搜索引擎优化(Search engine optimization,简
菏泽爱采购入驻的方式
百度爱采购是如何排序的?1.时间因素:爱采购网站展示的高品质数据,并非人工介入,而是受时间因素控制,在不同的时间,同一物品会出现在不同的地点。比方说,您在采购中做了一款游泳产品,早上您查询的展示位置是在首页首行,下午再次查询
链接太长怎么缩短
链接是网络中不可或缺的一部分,但有时链接太长并不好用或者方便,那么这时候怎么样才能缩短链接呢?第一种方法是使用URL缩短工具。这类工具可以将长网址通过转换算法缩短成短网址,一般常见的URL缩短工具有Google短网址、bit.ly、tinyurl等
苹果4越狱神器,一键解锁新体验,畅享无限可能!
苹果4越狱神器,一键解锁新体验,畅享无限可能!在智能手机发展的历史长河中,苹果iPhone 4无疑是一个具有里程碑意义的产品。它不仅以其精致的工业设计、出色的屏幕显示效果以及革命性的操作系统赢得了全球用户的喜爱,还激发了无数技术爱
详解GaussDB for MySQL性能优化
我们先来看看MySQL 8.0的事务提交的大致流程以上流程,是MySQL8.0对WAL原则的一种实现,这个流程意味着,任何一个事务的提交,一定要完成write buffer和flush to disk流程。然而那么这个流程中,有一个问题:每个服务器的CPU是有限的,服务
《小浣熊漫画cms》thinkphp框架开发的一款开源免费的漫画站源码
小浣熊漫画是一款由国人开发漫画站源码,开发者一开始还开发了小浣熊小说,两款产品使用起来都还不错,就是搭建起来会有一小些问题,可能是某些地方容易被疏忽了,之前本人也是有搭建过的。小浣熊漫画还提供了火车头api接口和火车头发布模
高德地图,轻松定位自家店铺的神奇秘籍大公开
在当今数字化的时代,拥有一个精准的店铺定位对于商家来说至关重要,高德地图作为一款广受欢迎的导航应用,为商家提供了便捷的店铺定位服务,就让我们一起揭开高德地图定位自家店铺的神秘面纱。上传清晰、有吸引力的店铺照片也是必不可少的
今天!欧洲理事会决定罗马尼亚和保加利亚全面加入申根;AUR主席要弹劾总统!比亚迪宣布2025年开始在匈牙利生产紧凑型电动汽车;-
今日罗马尼亚旅罗华人报讯 今天(12日),欧洲司法和内政委员会(JAI)正式批准罗马尼亚和保加利亚加入申根区。根据决定,两国将于2025年1月1日起,成为无边界管制空间成员。对于罗保两国来说这是一个历史性时刻。 根据决定,2025年1月1日
莫名其妙收到长银消费金融短信
小编导语在这个信息高度发达的时代,手机短信已经成为我们日常生活中的重要沟通工具。许多人都曾经历过一些莫名其妙的短信,尤其是来自于一些金融机构或陌生号码的营销信息。最近,我收到了来自长银消费金融的一条短信,这让我产生了浓厚的
如何确保新站三日内被百度迅速收录?关键在于优质内容与独特吸引力
身为网络管理员,新建站点后最期望的莫过于能迅速被各大搜索引擎如百度所收录。然近期因百度审核标准日趋严苛,许多新站需等待数周乃至月余方有收录可能,给推广及业务发展增添了诸多困难。在此背景下,如何确保新站在三日内被百度迅速收录
相关文章
推荐文章
发表评论
0评