gpt4 book ai didi

java - java 遍历文件系统

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:20 25 4
gpt4 key购买 nike

我有一个关于迭代文件系统树的问题。给定一个队列和一个起始节点,您将如何迭代它?我最初明白,您必须将开始的节点排入队列,但我对如何实现 hasNext() 和 next() 方法感到困惑。这是我必须实现的两种方法,我不希望任何人给我代码,如果你这样做,我只会用它作为指导,而不是因为抄袭而复制。另外,递归不是一个选项,因为使用它会进行深度优先遍历,而不是所需的文件系统广度优先遍历

public boolean hasNext()
public File next()

最佳答案

使用Queue实现。假设您从节点头开始。首先将头放入队列中。迭代 head 的所有子级并将它们放入队列中。所有子节点完成后,删除头,从队列中获取下一个节点。这个新节点现在将成为头节点。找到它的子级并将其放入队列等等...广告队列遵循 FIFO(先进先出),您可以用它实现 BFS(呼吸优先搜索)。

and to iterate over all the children in head, would I have to use the listFiles() method, or isDirectory()?

回复您的评论。假设您有一条起始路径 P1 - 头。首先使用 isDirectory() 方法检查它是否是一个目录。如果没有,你的旅行就结束了。如果是,则在该目录上执行 listFiles() 。迭代 listFiles() 返回的文件,仅当 isDirectory() 返回 true 时才将其添加到队列中。然后从队列中提取文件并继续处理。

关于java - java 遍历文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29283947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com