• ベストアンサー

JavaのComparatorを使ったソート

Javaのバージョンは1.5です。 Comparatorクラスをimplementsしたクラスを使用して ソートを行おうとしています。 compareメソッドは二つの引数を比較した結果を返してくれますが、 日本語を比較した場合に何をもって大小を比較するのでしょうか? 日本語の入った項目(総務、経理、開発、人事等が入っています)をキーに ソートさせた場合の結果がよくわからないソートになりました。 日本語の音読みにソートさせたいのですが…。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「Comparatorインターフェイスを implements したクラス」を使ってソートするなら, 「日本語を比較した場合に何をもって大小を比較するのか」はそのクラス (の compare メソッド) を作った人に聞く必要があるでしょうね. 何も考えずに文字列同士を比較すれば文字コードによる辞書順の前後関係で決まりますが, それではダメで「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ. あと, 「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね. 同じ漢字でも違う音になることがありますから.

superss28
質問者

お礼

>「自分の好きなように大小順序を決めたい」というのが Comparatorインターフェイスのそもそもの目的ですよ。 調べてみると専用の比較をしているメソッドがいろいろ公開されていますね。 >「日本語の音読みにソートさせたい」なら「音読み」のデータを持たないとダメでしょうね。 データベースには音読み用のカラムを追加することができず、 結局S-JISの文字コード順でということになりました。 ご回答ありがとうございました。

関連するQ&A