IO—》递归
递归的概述
递归,指在当前方法内调用自己的这种现象
public void method(){
System.out.println(“递归的演示”);
//在当前方法内调用自己
method();
}
递归分为两种,直接递归和间接递归。
直接递归称为方法自身调用自己。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
实例:
①计算1-n之间的和,使用递归完成
public class demo4 {
//递归:要运行的方法主体不变,而参与运行的方法参数会变
//递归必须要有一个出口,否则程序没有意义
public static void main(String[] args) {
System.out.println(getnum(1000));
}
//计算1-100和,用递归做
public static int getnum(int n){
if(n==1){
return 1;
}
return n+getnum(n-1);
}
//3+getnum(2)
// 2+getnum(1)
// 1
//最终赋值给调用者,往上一直传给调用者
}
②递归打印所有子目录中的文件路径
public class FileDemo2 {
public static void main(String[] args) {
File file = new File("d:\\test");
getFileAll(file);
}
//获取指定目录以及子目录中的所有的文件
public static void getFileAll(File file) {
File[] files = file.listFiles();
//遍历当前目录下的所有文件和文件夹
for (File f : files) {
//判断当前遍历到的是否为目录
if(f.isDirectory()){
//是目录,继续获取这个目录下的所有文件和文件夹
getFileAll(f);
}else{
//不是目录,说明当前f就是文件,那么就打印出来
System.out.println(f);
}
}
}
}
③搜索指定目录中的.java文件(含子目录)
public class myfl implements FileFilter{ @Override
public boolean accept(File pathname) {
//如果是文件夹则不进行过滤,直接加到File数组中
if(pathname.isDirectory()){
return true;
}
return pathname.getName().toLowerCase().endsWith(".java");
} }
//找到指定目录下的所有指定文件类型的文件
public class demo5 {
public static void main(String[] args) {
File file=new File("e:\\test");
getallfile(file);
}
public static void getallfile(File file){
File[] files=file.listFiles(new myfl());
for(File f:files){
if(f.isDirectory()){
getallfile(f);
}else{
System.out.println(f);
}
}
}
}
④计算n!
public class demo6 {
public static void main(String[] args) {
System.out.println(getnum(20));
}
public static long getnum(int n){
if(n==1){
return 1;
}
return n*getnum(n-1);
}
}
IO—》递归的更多相关文章
- java中IO递归写入
package cn.stat.p1.file; import java.io.BufferedWriter; import java.io.File; import java.io.FileWrit ...
- 使用IO,递归打印目录树
package chengbaoDemo; import java.io.File; import java.io.IOException; public class TestIOFile { pub ...
- Java递归实现操作系统文件的复制、粘贴和删除功能
通过Java IO递归实现操作系统对文件的复制.粘贴和删除功能,剪切=复制+粘贴+删除 代码示例: import java.io.BufferedInputStream; import java.io ...
- IO-file-07 递归
package com.bwie.io; /** * 递归: * 方法自己调用自己 * 递归头:何时结束递归 * 递归体:重复调用 * @author Allen17805272076 * */ pu ...
- 总结删除文件或文件夹的7种方法-JAVA IO基础总结第4篇
本文是Java IO总结系列篇的第4篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...
- 机器学习、NLP、Python和Math最好的150余个教程(建议收藏)
编辑 | MingMing 尽管机器学习的历史可以追溯到1959年,但目前,这个领域正以前所未有的速度发展.最近,我一直在网上寻找关于机器学习和NLP各方面的好资源,为了帮助到和我有相同需求的人,我整 ...
- VS2015编译GEOS
下载链接:http://trac.osgeo.org/geos/ 1. 打开cmake,加载geos源码和定位geos的工程存放位置: 2.点击configure,会报错,首先设置CMAKE_INST ...
- IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream
一.文件的遍历 1.需求:对指定目录进行所有的内容的列出(包含子目录的内容)-文件的深度遍历 思想:递归的思想,在递归的时候要记住递归的层次. public class FileTest { publ ...
- Java基础知识强化之IO流笔记15:递归之删除带内容的目录案例
1. 需求:递归删除带内容的目录 分析: (1)封装目录 (2)获取该目录下的所有文件或者文件夹的File数组 (3)遍历该File数组,得到每一个File对象 (4)判断该File对 ...
- Java必须了解的“递归”与“IO流”!!!
>>>First: 递归! 1. 定义: 在函数自身内部,调用函数本身的方式,称为递归. 2. 注意: 递归包括递进去.归出来两步. 首先,依次执行[函数调自身语句]上半部分的代码, ...
随机推荐
- SpringBoot2.x入门:快速创建一个SpringBoot应用
前提 这篇文章是<SpringBoot2.x入门>专辑的第2篇文章,使用的SpringBoot版本为2.3.1.RELEASE,JDK版本为1.8. 常规的套路会建议使用Spring官方提 ...
- win中mysql安装
mysql安装: https://www.mysql.com/>官网 下载 [DOWNLOADS]----[MySQL Community Server]社区版---5.6---No thank ...
- 服务消费者(Ribbon)
上一篇文章,简单概述了服务注册与发现,在微服务架构中,业务都会被拆分成一个独立的服务,服务之间的通讯是基于http restful的,Ribbon可以很好地控制HTTP和TCP客户端的行为,Sprin ...
- NXP S32V eiq_auto tensorflow offline tool 环境配置
NXP S32V eiq_auto tensorflow offline tool 环境配置 完成cnn模型eiq移植的第一步 1.安装conda 下载.sh bash Anaconda3-5.3.1 ...
- python字符串与文本操作(一)
1.一个字符串分割为多个字段,但是分隔符 (还有周围的空格) 并不是固定的 #string 对象的split()方法只适应于非常简单的字符串分割情形,它并不允许有 多个分隔符或者是分隔符周围不确定的空 ...
- day08获取图片
wxml: <!--pages/publish/publish.wxml--> <text>pages/publish/publish.wxml</text> &l ...
- 【学习随手记】kubeadm 查看创建集群需要的镜像版本,附拉取镜像脚本
查看创建集群需要的镜像版本 kubeadm config images list [--kubernetes-version <version>] 国内拉取镜像脚本 一般而言,直接使用ku ...
- Scala 基础(六):Scala变量 (三) 标识符
1 标识符概念 1) Scala 对各种变量.方法.函数等命名时使用的字符序列称为标识符 2) 凡是自己可以起名字的地方都叫标识符 2 标识符的命名规则 Scala中的标识符声明,基本和Java是一致 ...
- Celery无法注册任务的几种情况
Celery处理异步任务使得程序不必等待任务结束就可以继续执行其它任务或返回数据结果, 在处理耗时任务如发送邮件.发送信息验证码等场景下非常适用! Celery使用方法灵活,根据具体业务有不同的部署和 ...
- Threejs实现滴滴官网首页地球动画
.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > ...