分享好友 最新动态首页 最新动态分类 切换频道
递归与文件操作:从基础到高级应用
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格式

 

代码实现

最新文章
2024143期[大唐蜀绣]双色球杀号定胆精准专家预测
福彩双色球杀号定胆玩法本期推荐上期推荐命中情况红球24码01,02,04,0608,09,10,1112,15,16,1820,21,22,2324,25,26,2728,31,32,3301,03,04,0506,08,09,1011,14,16,1718,19,20,2426,27,28,2930,31,32,33对2码红球21码01,02,04,0608,09,10,111
336期[笨脑]专家预测P5精准1注今晚
体彩中心排列五24335期奖码:49906大小比3:2,奇偶比2:3,012路比4:1:0,质合比0:5,和值28点,和尾8点,跨度9。[解奇偶比]上期奇偶比2:3,上一次开出奇偶比2:3是2024334期,中间间隔了0期再次开出。本期预测奇偶比:1:4,5:0 建议防:0:5比例的出现
Docker图形化页面管理工具Portainer
1.Portainer 介绍 Portainer 是一款开源的Docker图形管理系统。 官网:https://www.portainer.io/2.Portainer 部署 3.Portainer 管理Docker主机被管理Docker主机节点开启Docker API: 4.关于时区问题说明 Docker时间和宿主同
AI标题生成器:一键输入关键词,智能软件自动生成多个吸引眼球的标题
1. 【独家揭秘】掌握这五大技巧,让你的文章一夜爆红! 100字以上简介:本文将为你详细解析怎样去运用独到的视角、吸引眼球的标题、高品质的内容等五大技巧,让你的文章在短时间内迅速走红,成为爆款!2. 【热门话题】紧跟潮流,这些文章标
2024年P5333期[壹号选手]十位杀号精准
333期壹号选手P5十位杀号精准:034 开:332期壹号选手P5十位杀号精准:256 开:67957[十位:5]331期壹号选手P5十位杀号精准:026 开:71227[十位:2]330期壹号选手P5十位杀号精准:157 开:81136[十位:3]329期壹号选手P5十位杀号精准:126 开:14780[十
2024长春国际医药健康产业博览会圆满落下帷幕
  转自:中国吉林网  本届健博会以“新质引领健康、科技共创未来”为主题,整体规划面积约5万平方米,突出全链条展示吉林省中医药产业,特别是吉林·长白山人参产业规划及科研成果转化这一重点,围绕医药、医疗、医养和医学四大版块,
flask毕设校园移动办公系统(程序+论文)
本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。选题背景 随着信息技术的飞速发展,移动办公已经成为提高工作效率、优化管理流程的重要
7 个较佳数据可视化 WordPress 插件(图表和信息图表)
您想将您的网站迁移新的虚拟主机吗?或者,您可能想创建站点的临时版本,您可以在其中试用新插件而不会影响您的实时站点。 您可以手动迁移和复制网站,但这是一个非常耗时且容易出错的技术过程。 在本文中,
AI写代码脚本神器:一键自动生成高效代码,提升编程效率与质量
在当今快速发展的科技时代人工智能的应用已经渗透到各行各业其中编程领域也不例外。多开发者都在寻求一种可以加强编程效率与品质的神器。写代码脚本神器应运而生它能够一键自动生成高效代码不仅节省了开发者的大量时间还提升了代码的稳定性
AI 创业指难(一) :Stable Diffusion AI 绘画怎么用
一. 前言 一年不到,AI对生活和工作的影响已经逐步体现。所以千万别掉队了,也许AI 不能成为我们的主要工作,但是如何借助 AI 实现副业的扩展同样值得思考。 这一篇就来讲一个 AI绘画工具,这个工具我也是才上手不
相关文章
推荐文章
发表评论
0评