赞
踩
public void getFile(File file){
if(file.isDirectory()){//如果是目录
File[] files = file.listFiles();
for(int i=0;i<files.length;i++)
getFile(files[i]);//递归
}
else if(file.isFile()){
//如果是文件,就输出。
System.out.println(file.getName());
}
}
5 . 使用队列优化。
//创建一个队列
Queen<File> queue = new LinkedList<File>();
queue.offer(file);
while(!queue.isEmpty()){//如果队列不为空
File file = queue.poll();
if(file.isDirectory()){
//从队列中获取一个File
File[] files = file.listFiles();
//是目录,将目录下所有文件遍历出来,存储到队列中
for(int i =0;i<files.length;i++)
queue.offer(files[i]);
}else{
//是文件,进行输出。
System.out.println(file.getName());
}
}
6 . 总结
如果递归的是深而不广的树时,应该使用队列来优化递归;如果递归是广而不深的树的时候,就应该用递归来优化队列。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。