使用非递归实现遍历目录

时间:2021-07-06 19:02:10

 标准的JDK里面只有栈(java.util.Stack),而没有队列,所以在使用栈来实现遍历时,进行深度遍历,如果实在想实现广度遍历的话,可以自己组合java.util.LinkedList来实现一个队列。

使用非递归实现遍历目录import  java.io.File;
使用非递归实现遍历目录
import  java.util.Stack;
使用非递归实现遍历目录
使用非递归实现遍历目录使用非递归实现遍历目录
public   class  NoRecursive  ... {
使用非递归实现遍历目录
使用非递归实现遍历目录使用非递归实现遍历目录    
/** *//**
使用非递归实现遍历目录     * 
@param args
使用非递归实现遍历目录     
*/

使用非递归实现遍历目录使用非递归实现遍历目录    
public static void main(String[] args) ...{
使用非递归实现遍历目录        
// TODO Auto-generated method stub
使用非递归实现遍历目录
        File root = new File("C:/");
使用非递归实现遍历目录        Stack stack 
= new Stack();
使用非递归实现遍历目录        stack.push(root);
使用非递归实现遍历目录使用非递归实现遍历目录        
while(stack.size()>0)...{
使用非递归实现遍历目录            File file 
= (File)stack.pop();
使用非递归实现遍历目录            File[] files 
= file.listFiles();
使用非递归实现遍历目录使用非递归实现遍历目录            
for (int i = 0; i < files.length; i++...{
使用非递归实现遍历目录使用非递归实现遍历目录                
if(files[i].isDirectory() && !files[i].isHidden())...{
使用非递归实现遍历目录                    stack.push(files[i]);
使用非递归实现遍历目录使用非递归实现遍历目录                }
else if(files[i].isFile() && !files[i].isHidden())...{
使用非递归实现遍历目录                    System.out.println(files[i].getPath());
使用非递归实现遍历目录                }

使用非递归实现遍历目录            }

使用非递归实现遍历目录        }

使用非递归实现遍历目录    }

使用非递归实现遍历目录
使用非递归实现遍历目录}