我做了一个简单的测试
我在目录A中有一些文件,我多次调用file.list(),然后打印结果
我发现结果始终具有相同的序列
我想知道是什么决定了file.list()的顺序?
我不想对结果进行排序,所以不要告诉我使用Comparator。
我只想知道决定file.list()的顺序是什么?
我注意到javadoc告诉我们:
无法保证结果数组中的名称字符串将以任何特定顺序出现;特别是,它们不会保证按字母顺序出现。
那么为什么我每次都得到相同的有序结果呢?
任何iedas?
由于
PS
操作系统:Ubuntu 10.04
android4.03
让我们更轻松
选择一个操作系统:Ubuntu 10.04
并选择java 1.6
我们只考虑一种情况,现在,为什么我每次都得到相同的结果?
谢谢大家!
答案 0 :(得分:3)
那么为什么我每次都得到相同的有序结果呢?
因为“不保证做X”与“保证不做X”不一样。碰巧在您的系统上,实现可能总是按字母顺序返回结果。它可能取决于使用的文件系统。它几乎肯定取决于操作系统。它可能取决于您正在使用的Java版本。
重要的是它不保证,所以你不应该依赖它。
答案 1 :(得分:0)
我认为它依赖于操作系统或依赖于文件系统。用于文件列表的Java查询文件系统。因此,JAVA的结果是未知的。
因此,为了确保列表按所需顺序排列,您应对其进行排序。但是,如果你使用快速排序,那么它应该是快速的。通常列表将按操作系统排序。
答案 2 :(得分:0)
它取决于执行它的至少OS。我之前已经观察到,在Windows上,它按字母顺序返回,而在Linux上则是相反的顺序。不要像文档中提到的那样依赖它。