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