File.list()是否有序(java)

时间:2012-12-07 10:24:51

标签: java sequence

我做了一个简单的测试

我在目录A中有一些文件,我多次调用file.list(),然后打印结果

我发现结果始终具有相同的序列

我想知道是什么决定了file.list()的顺序?

我不想对结果进行排序,所以不要告诉我使用Comparator。

我只想知道决定file.list()的顺序是什么?

我注意到javadoc告诉我们:

  

无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不会保证按字母顺序出现。

那么为什么我每次都得到相同的有序结果呢?

任何iedas?

由于

PS
操作系统:Ubuntu 10.04
android4.03

让我们更轻松 选择一个操作系统:Ubuntu 10.04
并选择java 1.6
我们只考虑一种情况,现在,为什么我每次都得到相同的结果?

谢谢大家!

3 个答案:

答案 0 :(得分:3)

  

那么为什么我每次都得到相同的有序结果呢?

因为“不保证做X”与“保证不做X”不一样。碰巧在您的系统上,实现可能总是按字母顺序返回结果。它可能取决于使用的文件系统。它几乎肯定取决于操作系统。它可能取决于您正在使用的Java版本。

重要的是它保证,所以你不应该依赖它。

答案 1 :(得分:0)

我认为它依赖于操作系统或依赖于文件系统。用于文件列表的Java查询文件系统。因此,JAVA的结果是未知的。

因此,为了确保列表按所需顺序排列,您应对其进行排序。但是,如果你使用快速排序,那么它应该是快速的。通常列表将按操作系统排序。

答案 2 :(得分:0)

它取决于执行它的至少OS。我之前已经观察到,在Windows上,它按字母顺序返回,而在Linux上则是相反的顺序。不要像文档中提到的那样依赖它。