-1
public class BioDiesel {
            public static void main(String args[]) {
                LinkedList<String> list = new LinkedList<String>();
                list.add("BbB1");
                list.add("bBb2");
                list.add("bbB3");
                list.add("BBb4");
                Collections.sort(list);
                for (String str : list) {
                    System.out.print(str + ":");
                }
            }
}

コードは正常に実行され、結果がソートされた順序で表示されます。上記の文字列要素の場合にソートがどのように実行されるかを誰かが説明できますか?

どのように出力は次のとおりです。

BBb4:BbB1:bBb2:bbB3:
4

2 に答える 2

1

あなたの質問を正しく理解したと仮定すると、これはうまくいくはずです:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

String.CASE_INSENSITIVE_ORDER文字列を比較するときに大文字と小文字を区別しないコンパレータ クラスです。

于 2012-07-13T14:04:17.833 に答える
0

のドキュメントCollections.sortから始めましょう:

要素の自然順序付けに従って、指定されたリストを昇順に並べ替えます。

文字列の自然な順序は何ですか? String教えてください:

比較は、文字列内の各文字の Unicode 値に基づいています。

もちろん、 の Unicode 値は の Unicode 値bよりも高くなっていますB

大文字と小文字を区別しない並べ替えが必要な場合は、 を受け取るの形式がありsort、事前に作成されたコンパレータを提供するComparatorと便利です。StringCASE_INSENSITIVE_ORDER

于 2012-07-13T14:09:40.050 に答える