71_常用类_file类_打印目录树状结构_递归算法_(枚举补充)

树状结构展现文件结构

  • 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹),利用File类和递归知识,实现树状结构的展示,代码如下:
import java.io.File;
import java.io.IOException;
public class TestFile {
    /**
     * 1.File文件类的常见构造器,常见方法的使用
     * 2.递归:
     *      概念:在java代码中出现,出现本身调用自己的现象,我们称之为递归。
     *      组成:递归体;递归头。
     *      注意事项:
     *          递归若没有递归头,递归将是死递归了。
     */
    public static void main(String[] args) {
        File f = new File("d:/src3");
        printFile(f, 0);
    }

    static void printFile(File file, int level) {
        for (int i = 0; i < level; i++) {
            System.out.print("-");
        }
        System.out.println(file.getName());
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            for (File temp : files) {
                printFile(temp, level + 1);
            }
        }
    }
}

枚举

  • 枚举类型:
    • 只能够取特定值中的一个
    • 使用enum关键字
  • 所有的枚举类型隐性地继承自 java.lang.Enum。(枚举实质上还是类!而每个被枚举的成员实质就是一个枚举类型的实例,他们默认都是public static final的。可以直接通过枚举类型名直接使用它们。)

强烈建议当你需要定义一组常量时,使用枚举类型
尽量不要使用枚举的高级特性,事实上高级特性都可以使用普通类来实现,没有必要引入复杂性!

  • 代码
public class TestEnum {
    public static void main(String[] args) {
        Week ww = Week.FRIDAY;// 定义一个枚举类型对象
        Week ww2 = Week.values()[2];// 返回每局的第三个元素!!
        System.out.println(ww2);
        String temp = testEnum(Week.SUNDAY);
        System.out.println(temp);
    }

    static String testEnum(Week w) {
        switch (w) {
        case SUNDAY:
            return "日";
        case MONDAY:
            return "一";
        case TUESDAY:
            return "二";
        case WEDNESDAY:
            return "三";
        case THURSDAY:
            return "四";
        case FRIDAY:
            return "五";
        case SATURDAY:
            return "六";
        }
        return "";
    }

}

enum Week {
    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值