A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王永贺 高级黑马   /  2013-6-25 21:50  /  1972 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在某个盘下面创建0到9十个文件夹 然后依次在这每个文件夹下面又创建0-9十 个文件夹。如此循环总共创建10层。。。。。。。

评分

参与人数 1黑马币 +5 收起 理由
张勇1993 + 5 神马都是浮云

查看全部评分

3 个回复

正序浏览
本帖最后由 张洪慊 于 2013-6-26 17:11 编辑
王永贺 发表于 2013-6-26 09:13
循环条件应该是level<10因为要创建10层  但是这样的话执行时间特别长  一般情况下这样类似的题,程序执行 ...

嗯,不建议用递归,可以改成纯循环 解决,递归可以简化代码,但是开销比较大,执行效率低。
我的代码还有个缺陷,循环创建对象,我暂时没想到好的解决方式,抛砖引玉了~~

回复 使用道具 举报
本帖最后由 王永贺 于 2013-6-26 09:14 编辑

循环条件应该是level<10因为要创建10层  但是这样的话执行时间特别长  一般情况下这样类似的题,程序执行时间不能这么长,
回复 使用道具 举报
  1. /*
  2. 思想:
  3. 以f:为例
  4. f:\0
  5.   f:\0\0 //当递归到第二级需要关键需要改变传入的路径也就是上一级的(dest: f:\0)
  6.   ...      然后与当前目录名进行拼接(f:\0 + \ + 0)
  7.   f:\0\9
  8. f:\1
  9.   f:\1\0
  10.   ...
  11.   f:\1\9
  12. ...
  13. */
  14. import java.io.File;

  15. class CreateDir{
  16.    public static void CreateDirectory(File dest,int level){//使用level控制目录的级数
  17.      String path=dest.getPath()+"\\";
  18.          for(int dirName=0;dirName<10;++dirName){
  19.            dest=new File(path+""+dirName);
  20.            dest.mkdir();
  21.        if(level<2){//创建到二级目录后,不在调用CreateDirectory
  22.             CreateDirectory(dest,level+1);
  23.            }
  24.           }
  25.    }
  26.    public static void main(String[] args){
  27.    
  28.     CreateDirectory(new File("f:"),1);
  29.    }

  30. }
复制代码

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
神之梦 + 1 + 3 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马