-3

这个问题的答案是B和C。我明白为什么B是答案之一,但我不明白为什么C也是正确的。

有人可以解释为什么 C 是正确的吗?

在此处输入图像描述

4

1 回答 1

2

目录中的条目不会以任何特定顺序遍历。

  • B 是在 x/a 之前访问 x/y 的遍历

  • C 是在 x/y 之前访问 x/a 的遍历

两者都是可能的,因为相关的 javadocs 对访问目录条目的顺序没有任何限制。(没有提到这个问题。)

Java教程

“文件树首先是深度遍历,但您不能对访问子目录的迭代顺序做出任何假设。

重点补充。


在实践中,只要父目录 (x) 没有更新,遍历顺序将是确定的。它通常取决于目录条目在磁盘上的存储顺序。

另请注意,您通常不会注意到这一点,因为命令行实用程序(例如ls和 shell 本身)通常在将目录条目名称显示给您之前对其进行排序。

于 2015-01-04T05:03:51.620 回答