0

簡単なテストをします

ディレクトリAにいくつかのファイルがあり、 file.list() を数回呼び出してから、結果を出力します

結果は常に同じシーケンスを持つことがわかりました

file.list() の順序を決定するものを知りたいですか?

結果をソートしたくないので、Comparator を使用するように言わないでください。

file.list() の順序を決定するものを知りたいだけですか?

そして、javadoc が次のことを示していることに気付きました。

結果の配列内の名前文字列が特定の順序で表示されるという保証はありません。特に、アルファベット順に表示されるとは限りません。

では、なぜ毎回同じ順序の結果が得られるのでしょうか?

イーダはありますか?

ありがとう

PS
OS: Ubuntu 10.04 android4.03


OS:Ubuntu 10.04
を選択し、Java 1.6を選択することを簡単にしましょう

みんなありがとう!

4

3 に答える 3

3

では、なぜ毎回同じ順序の結果が得られるのですか?

「Xをしないことを保証する」は「Xをしないことを保証する」と同じではないからです。ご使用のシステムでは、実装常に結果をアルファベット順に返す場合があります。使用しているファイルシステムによって異なる場合があります。それはほぼ確実にオペレーティングシステムに依存します。使用しているJavaのバージョンによって異なる場合があります。

重要なのは、それが保証されていないということです。したがって、それに依存するべきではありません。

于 2012-12-07T10:27:07.443 に答える
0

少なくともそれが実行される OS に依存します。以前、Windows ではアルファベット順で返され、Linux では逆順であることに気付きました。ドキュメントに記載されているように、決してそれに依存しないでください。

于 2012-12-07T10:51:19.407 に答える
0

OS依存かファイルシステム依存だと思います。ファイルのリストの Java クエリ ファイル システム。したがって、JAVA の結果は不明です。

したがって、リストが目的の順序になっていることを確認するには、並べ替える必要があります。ただし、クイックソートを使用すると、とにかく高速になるはずです。通常、リストはすでに OS 別にソートされています。

于 2012-12-07T10:30:31.383 に答える