递归

1. 概述

方法中调用当前方法

2. 递归需要注意的事项

递归次数不能过多,否则内存溢出

3. 案例

3.1 获取指定目录下的文件名
public class AllDirPath {
/*
* 递归打印所有子目录中的文件路径
*/
public static void main(String[] args) {
// 1. 获取要查询的目录,判断该文件是否存在
File file = new File("e:/培训"); // 2. 存在,获取该目录下所有的文件
// 3. 判断此文件是否为文件夹;是的话继续第2步,直到结束
// 所以2和3开始需要递归;把其封装到一个方法中
getAllFile(file);
} private static void getAllFile(File file) {
// 2. 存在,获取该目录下所有的文件
// 3. 判断此文件是否为文件夹;是的话继续第2步,直到结束
if(file.exists()){
File[] listFiles = file.listFiles();
for(File f: listFiles){
if(f.isDirectory()){
getAllFile(f);
}else{
System.out.println(f.getName());
}
}
}else{
System.out.println("要查询的目录还不存在,请先去创建!");
}
}
}
3.2 删除指定目录
public class DelDir {
public static void main(String[] args) {
// 获取指定要删除目录
File file = new File("e:/peixun");
deleteDir(file);
} public static void deleteDir(File file) {
// 先进行判断是否为文件夹
if(file.isDirectory()){
File[] listFiles = file.listFiles();
for (File tempFile : listFiles) {
deleteDir(tempFile);
} // 直至文件夹为空时,删除文件夹
boolean delete = file.delete();
System.out.println(file.getName() + "..." + delete);
}else{
// 不是文件夹直接删
boolean delete = file.delete();
System.out.println(file.getName() + "..." + delete);
}
}
}

Java—递归的更多相关文章

  1. Java递归列出目录下全部文件

    Java递归列出目录下全部文件 /** * 列出指定目录的全部内容 * */ import java.io.*; class hello{ public static void main(String ...

  2. Java 递归调用 recursive 给一个参数 返回一大堆

    需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...

  3. JAVA 递归实现从n个数中选取m个数的所有组合

    这周Java课程有个小作业:Java递归实现从n个数中选取m个数的所有组合 代码如下: //其中 n 取 1,2,3,4,5 五个数, m 取 3 package javaText; public c ...

  4. JAVA递归、非递归遍历二叉树(转)

    原文链接: JAVA递归.非递归遍历二叉树 import java.util.Stack; import java.util.HashMap; public class BinTree { priva ...

  5. 慎用Java递归调用

    总结:慎用Java递归调用,测试时可以尝试该方法,否则尽量不要使用递归!递归过多调用时,最好改为for或者whlie来代替. 在java语言中,使用递归调用时,如果过多的调用容易造成java.lang ...

  6. Java递归实现阶乘

    import java.util.Scanner; public class Factorial { public static void main(String[] args) { Scanner ...

  7. java递归删除目录下所有内容

    java递归删除目录下所有内容 private static boolean deleteDir(File dir) {if (dir.isDirectory()) {        String[] ...

  8. JAVA递归实现线索化二叉树

    JAVA递归实现线索化二叉树 基础理论 首先,二叉树递归遍历分为先序遍历.中序遍历和后序遍历. 先序遍历为:根节点+左子树+右子树 中序遍历为:左子树+根节点+右子树 后序遍历为:左子树+右子树+根节 ...

  9. 算法笔记_013:汉诺塔问题(Java递归法和非递归法)

    目录 1 问题描述 2 解决方案  2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...

  10. Java递归输出指定路径下所有文件及文件夹

    package a.ab; import java.io.File; import java.io.IOException; public class AE { public static void ...

随机推荐

  1. 利用 yum 命令和 rpm 命令升级 Nginx 或者安装最新版本 Nginx

    方法一:使用 yum 命令升级 Nginx 1.在配置 YUM 仓库的目录(/etc/yum.repos.d/)下新增文件  nginx.repo vi /etc/yum.repos.d/nginx. ...

  2. ubuntu20 make redis6

    redis 官网:https://redis.io redis 下载和编译位置: cd /opt 下载 redis: wget http://download.redis.io/releases/re ...

  3. HanLP的分词统计

    HanLP的分词效果鄙人研究了HanLP,他的分词效果确实还可以,而且速度也比较快,10的数据是9000毫秒 @SneakyThrows@Overridepublic LinkedHashMap< ...

  4. 正式班D7

    2020.10.13星期二 正式班D7 一.上节课复习 Linux发展 批处理系统 多道技术 分时操作系统 multics->Unix->minix->Linux(如Redhat.c ...

  5. .NET Standard 类库的使用技巧

    系列目录     [已更新最新开发文章,点击查看详细] 在前一篇博客<.NET Standard中配置TargetFrameworks输出多版本类库>中详细介绍了如何创建.配置.条件编译. ...

  6. protoc-c 安装记录

    记录下 protobuf-c 安装过程中的问题. 1) 安装的时候没细看依赖. --  protobuf-c requires a C compiler, a C++ compiler, protob ...

  7. mysql update 子查询作为条件

    UPDATE t_commission_template tctJOIN ( SELECT max(id) maxid FROM t_commission_template WHERE taken_m ...

  8. 2019年CSP-J初赛试题(普及组)试题详解

    https://www.jianshu.com/p/9e58f455c1ee https://blog.csdn.net/weixin_39104847/article/details/1086711 ...

  9. 第十二章 Linux三剑客之老三—grep

    一.Linux grep 命令用于查找文件里符合条件的字符串. Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global ...

  10. 构建调试Linux内核网络的环境Menuos系统

    一.Linux内核源码下载 下载网址为:https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar.xz 下载完成后放入home/Menu ...