- ベストアンサー
JavaのComparatorを使ったソート
Javaのバージョンは1.5です。 Comparatorクラスをimplementsしたクラスを使用して ソートを行おうとしています。 compareメソッドは二つの引数を比較した結果を返してくれますが、 日本語を比較した場合に何をもって大小を比較するのでしょうか? 日本語の入った項目(総務、経理、開発、人事等が入っています)をキーに ソートさせた場合の結果がよくわからないソートになりました。 日本語の音読みにソートさせたいのですが…。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
「Comparatorインターフェイスを implements したクラス」を使ってソートするなら, 「日本語を比較した場合に何をもって大小を比較するのか」はそのクラス (の compare メソッド) を作った人に聞く必要があるでしょうね. 何も考えずに文字列同士を比較すれば文字コードによる辞書順の前後関係で決まりますが, それではダメで「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ. あと, 「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね. 同じ漢字でも違う音になることがありますから.
お礼
>「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ。 調べてみると専用の比較をしているメソッドがいろいろ公開されていますね。 >「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね。 データベースには音読み用のカラムを追加することができず、 結局S-JISの文字コード順でということになりました。 ご回答ありがとうございました。