3

文字列のリストがあり、その中には漢字が含まれているものもあります。

List<String> list = new ArrayList<String>();
list.add("安卓");
list.add("iPhone");
list.add("WindowsMobile");
list.add("苹果");
list.add("Ubuntu");
list.add("Windows7");

どうすればソートできますか?

4

4 に答える 4

1

通常の並べ替えを使用します。

Collections.sort(list);

カスタムソートが必要な場合は、独自のコンパレータを実装できます。

Collections.sort(list, new Comparator<String>() {
    public int compare(String s1, String s2) {
         // some own compare method...
    } 
});
于 2012-04-04T08:41:15.490 に答える
1

独自のコンパレータを使用する Collections.sort は、間違いなく出発点です。コンパレータを作成するには、クラスを実装Comparatorし、その比較メソッドを実装します。次に、オブジェクトをインスタンス化し、それを Collections.sort メソッドに渡します。

編集:

compare メソッド内のロジックのおおよその擬似コード:

IF s1 isChinese && s2 isEnglish
    return -1
IF s2 isChinese && s1 isEnglish
    return 1
IF s1 isChinese && s2 isChinese 
    //implement your custom way to sort stuff
IF s1 isEnglish && s2 isEnglish 
    //implement your custom way to sort stuff

これにより、中国語の単語が下部ではなく上部に表示されます。

于 2012-04-04T08:41:26.710 に答える
0

より良い方法は、それを英語に翻訳し(こちらを参照)、Comparator を使用して並べ替えることです。

于 2012-04-04T08:49:13.637 に答える