递归思想解决输出目录下的全部文件

刚刚了解了下递归思想

递归就是在方法内调用本方法

下面说一个实际的应用 输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件

import java.io.*;
class ShowFile{
    public static void showfile(File files){
        if(files.isDirectory()){
            File[] list=files.listFiles();
            //防止抛出空指针异常
            try{
            for(File file:list){
            if(file.isDirectory()){
            //递归
                showfile(file);
            }
            else{System.out.println(file.getAbsolutePath());}
        }}
            catch(NullPointerException x){
            System.out.println(files.getAbsolutePath());
}
}
        else{System.out.println(files.getAbsolutePath());}
}
}

递归的时候要小心出现死循环 如

void method(){
    mehtod();
}

这样子就死循环了

运用递归思想,可以减小重复性代码的长度,作用和循环体差不多,但是能做循环体做不到的事

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏禁心尽力

数据库设计之数据库,数据表和字段等的命名总结

数据库命名规则: 根据项目的实际意思来命名。 数据表命名规则: 1.数据表的命名大部分都是以名词的复数形式并且都为小写; 2.尽量使用前缀"table_"; 3...

2525
来自专栏spring源码深度学习

java基础io流——File的告白(重温经典)

创建成功返回true,如果存在就不创建返回false,创建一个文件时需要确保当前文件夹存在,所有要异常处理。

1683
来自专栏应兆康的专栏

Python Web - Flask笔记5

MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Wor...

1831
来自专栏Java帮帮-微信公众号-技术文章全总结

【数据库】MySQL进阶七、limit用法& varchar类型排序

【数据库】MySQL进阶七、 limit用法与varchar排序 limit用法 limit是mysql的语法 select * from table limi...

3526
来自专栏程序猿DD

漫画:什么是单例模式?(整合版)

————— 第二天 ————— 单例模式第一版: public class Singleton { private Singleton() {} ...

23510
来自专栏Hadoop数据仓库

HAWQ技术解析(十) —— 过程语言

        HAWQ支持用户自定义函数(user-defined functions,UDF),还支持给HAWQ内部的函数起别名。编写UDF的语言可以是SQ...

4755
来自专栏专注 Java 基础分享

Hibernate框架学习之注解映射实体类

     前面的相关文章中,我们已经介绍了使用XML配置文件映射实体类及其各种类型的属性的相关知识。然而不论是时代的潮流还是臃肿繁杂的配置代码告诉我们,注解配置...

2209
来自专栏GreenLeaves

SQL学习之高级数据过滤

一、高级数据过滤之IN操作符 IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。代码如下: select...

2185
来自专栏流媒体

resources.arsc解析

示例apk 示例代码 binary view二进制文件查看工具: android 6.0系统源码(网上搜索下载,这里暂不提供资源)

1672
来自专栏CodingToDie

Schema与数据类型优化(一)

Schema与数据类型优化 Table of Contents 1. 选择优化的数据类型 1.1. 整数类型 1.2. 实数类型 1. 选择优化的数据类型 My...

3252

扫码关注云+社区

领取腾讯云代金券