2016-03-22 6 views
-2

ではないのに対し、なぜ私は コンパレータは、複数のソート順序 を提供し、一方、比較可能な、単一のソート順序 を提供承知しています。しかし、私は一つのインタフェースが変更方法を理解することができません 、元のデータを比較可能な修正しませんオリジナルのデータはありませんでしたが、コンパレータは、コレクションフレームワークではコレクションフレームワーク

+1

Comparableは元のデータをどのように変更すると思いますか?特定のソート方法を参照していますか? – Eran

+0

申し訳ありませんが、適切な方法で説明をしていただけますか? –

+1

誰も何も修正していません(少なくともそうすべきではありません)、どちらのオブジェクトが「より大きい」か、どちらが「より小さい」かを教えてください。 'Comparator'や' compareTo() 'がオブジェクトを変更すると、オブジェクトに瑕疵があります。 –

答えて

2

Comparableこれはインターフェイスです。これはあなたのオブジェクトに 'compareTo'メソッドを実装させます。これにより、オブジェクトを別のオブジェクトと比較することができます。 https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html

Comparatorは、別のインターフェイスです。あなたのオブジェクトに強制的にメソッド 'compare'を実装させます。これにより、オブジェクトは2つの他のオブジェクトを比較することができます。差異に注意してください:比較し、比較する。 https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html

このリンクは、オブジェクトオーダーインターフェイスを非常によく説明しています。例とすべて。 https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

関連する問題