クラスを作成して Collator を拡張し、そこで比較メソッドをオーバーライドできます。
例はここにあります。
public class MyCollator extends Collator {
@Override
public int compare(String source, String target) {
return source.compareTo(target);
}
@Override
public CollationKey getCollationKey(String source) {
// TODO Auto-generated method stub
return null;
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return 0;
}
}
次に、この新しく追加されたクラスを使用して String リストをソートすると、正しい方法で表示されます。
Collator collator = new MyCollator();
Collections.sort(リスト、コレーター);
私のテスト結果は次のとおりです。
- ロキシュキス
- サランタイ
- スクオダス
- タウラゲ
- テルシャイ
- シャキアイ
- シェドゥヴァ
- シャウレイ
- シラレ
結果では、 ŠがTの後に表示されていることに注意してください。これは、"Š".compareTo("T")>1が true に等しいためです。
Sの直後にTの前にŠを表示するために、compare メソッドにロジックを入れることができると思います 。
上記のコードは、JDK 1.5 バージョンを使用してコンパイルおよび実行されます。
Collections.sort(list)を直接使用します。上記と同じ結果が得られます。