ComparableインタフェースとComparatorインタフェースの違い

・java.lang.Comparableインタフェース
このインタフェースを実装しているクラスは、「自分自身と他の要素」を任意のルールで並び替えられる。
並び替えルールはcompareToメソッドで実装。
int compareTo(T o)
戻り値が0なら等しい。
全ての基本データ型のラッパークラス型を含む多くの既存オブジェクトはComparableインタフェースを実装している。


・java.util.Comparatorインタフェース
このインタフェースを実装しているクラスは、任意のルールを用いて、「他のクラス同士」を並べ替えることができる。
並べ替えのルールはcompareメソッドで実装する。
int compare(T o1, T o2)
戻り値が0なら等しい。
Comparatorは与えられたクラスがComparableを実装していなかったりした場合の代替として使うっぽい(不安)。
なお、Collectionsユーティリティクラスの、sortとbinarySearchはComparableオブジェクトとComparatorオブジェクトのどちらにも対応している。


どっちかというと、Comparableインタフェースの方が重要すな。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です